2013-03-11 2 views
0

주어진 두 시간 슬롯의 시차를 계산하려고하는데 답변이 올바르지 않은 것 같습니다.TimeSpan을 사용하여 시차를 계산하십시오.

내 코드 : amFinish 주어진 값이 16시 18분 0초 16 : 30에서 변경 어떤 이유로 나는 아무 생각도 이유가 없다 들어 enter image description here

!

그리고 텍스트 상자를 사용자가 내가 그 값을 가지고 16 개 시간과 30 분

로 계산 얼마나 16.30 입력하면 대답은 05.30을해야하지만, 대신에 나는 05.18를 얻을 무엇. 어떤 설교?

+0

당신은 (11분 - 16시간 18 분)을 뺀되도록 amStart 분에 있음을 깨닫는다 amFinish을하고 빼기 안 - amStart 어쨌든? 만약 당신이 5:30 시도 (새로운 TimeSpan (16,30,00) - 새로운 TimeSpan (11,00,00)); – Heinrich

답변

9

시간의 30 %는 18 분입니다.

16.30 시간은 16 시간 및 30/100 시간이다.

16 시간 반은 16.50입니다.

+0

OK 고마워. 텍스트 상자가 있고 사용자가 16.30을 입력하면 어떻게 그 값을 받아 16.5로 계산합니까? – Tacit

+0

+1. @Tacit, 사용자가 0.3 또는 0.5를 원한다고 추측하는 대신에 그러한 값을 거부하는 것이 훨씬 쉽고 안전합니다. 그렇지 않으면 0.50은 50 분 또는 30 분을 의미합니까? 그냥 아무 말도하지 마라. –

+0

나는 그것을 할 수 있을지 확신합니다. 음, 제 경우에는 여러 개의 시간 슬롯이 있습니다. 이전 시간 차이를 포함 할 수있는 새로운 시간 차이를 추가 할 때마다 시간 차이를 계산해야합니다. – Tacit

1

귀하는 십진수 16.3 시간을 가지며, 이는 Oded가 설명한 것처럼 16 시간 18 분입니다.

당신은 두 시간, 분, 초를 지정하는 세 가지 인수 소요되는 TimeSpan 생성자의 과부하 사용해야하는 경우 :

TimeSpan amStart = new TimeSpan(0, 11, 0); 
TimeSpan amFinish = new TimeSpan(16, 30, 0); 

그리고 당신이 TimeSpanstring 변환해야하는 경우, 뭔가를 사용을 같은 :

TimeSpan amFinish = TimeSpan.ParseExact("16.30", @"hh\.mm", CultureInfo.InvariantCulture); 
+0

이것은 대답으로 00.05를 제공합니다. – Tacit

관련 문제