2012-08-30 111 views
4

我不知道我怎樣才能在完整小時如何獲得日期

例如兩個日期之間的差值的差值

DateTime date1 = DateTime.Now; 
DateTime date2 = new DateTime(2011, 8, 5, 33,00); 
long hours = date1 - date2; 

回答

5

這是演員長/ int會給你完整的小時。

TimeSpan span = date1.Subtract(date2); 
long hours = (long)span.TotalHours; 
+0

感謝的作品。 –

3

您可以通過減去兩個日期使用TimeSpan

DateTime date1 = DateTime.Now; 
DateTime date2 = new DateTime(2011, 8, 5); 
TimeSpan ts = date1 - date2; 
long hours = (long)ts.TotalHours; 

如果你想圓它儘可能準確,你可以使用Math.Round

long hours = (long)Math.Round(ts.TotalHours, MidpointRounding.AwayFromZero); 
4
var hours = (date1 - date2).TotalHours; 

或者,如果你不想要一小時的時間:

var hours = Math.Floor((date1 - date2).TotalHours); 
+0

未完成時間 – saj

+0

@saj - 那麼您認爲「完成時間」是什麼?順便說一下,這個陳述的結果與你的完全相同(在這種形式中的日期扣除也導致TimeSpan)。 –

+0

完整的60分鐘,總小時數返回一倍我期望沒有小數 – saj

1

你可以嘗試用

var result = date1 - date2; 
    var hours = result .TotalHours;