2011-09-01 57 views
1

我有以下代碼:未來的時間剩下幾秒?

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:50返回第二將是一個負面人物,我希望能夠返回秒或分鐘與下次代碼的關係爲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

適應夏令時的變化讓我每次駕車經過薩斯喀徹溫時都會深深的嘆息。 –

+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 
相關問題