2011-09-01 5 views
1

나는 다음과 같은 코드가 있습니다 시간이 지금 17:50 반환 된 두 번째는 부정적인 그림이 될 것입니다, 나는에 몇 초 또는 몇 분을 반환 할 수 있도록하고 싶습니다 것이라고앞으로 남은 시간은 초입니까?

var enteredDate = Convert.ToDateTime("17:45"); 
var todaysDateTime = DateTime.Now; 
var span = enteredDate.Subtract(todaysDateTime); 
double totalMins = Math.Ceiling(span.TotalMinutes); 

string timeCond; 
if (totalMins > 0) 
{ 
    if (totalMins < 5) 
    { 
    timeCond = Math.Ceiling(span.TotalSeconds) + " seconds left."; 
    } 
    else 
    { 
    timeCond = totalMins + " minutes left."; 
    } 

}

을 감안할 때 다음에 시간이 17:45 일 때 코드와의 관계가 가능합니까?

당신은 항상 하루 만 추가 할 수
+0

왜 당신이 그것을 시도하고 볼 수 없습니다 시도? –

+0

나는 그것을 시험해 보았다. 그래서 내가 묻고 있었다. –

+1

나는 부끄럽다. 우리가 아마겟돈 전에 살기 위해 몇 초를 남겼는지를 우리에게 말해주기를 기대했다. 나는 미래 시간의 최종 포인트가 어떻게 계산되었는지에 대한 알고리즘을보고 싶었다! :-P –

답변

3

:.

var span = enteredDate - todaysDateTime; 
if (span < TimeSpan.Zero) 
{ 
    span += TimeSpan.FromDays(1); 
} 

(이 오늘날의 17시 45분 미래의 17시 45분 사이에 24 시간이있다 가정합니다 즉 일광 절약 전환 주위에 사실이 아니다을, 수용 그것을 위해 가능하지만, 인생을 좀 더 복잡하게 만들 것입니다.)

+0

서스 캐처 원을 운전할 때마다 DST 변경을 수용하면 안도의 한숨이 한숨 쉬어졌습니다. –

+0

고마워, 나는 그런 식으로 완전히 공백으로 갔다. 힌트를 주셔서 감사합니다. DST는 비 오는 날에 떠날 것입니다. 다시 한번 감사드립니다. –

0

var span = Convert.ToDateTime("17:45") > DateTime.Now ? Convert.ToDateTime("17:45") - DateTime.Now : Convert.ToDateTime("17:45").AddDays(1) - DateTime.Now