2013-11-23 148 views
0

我想計算兩個日期時間之間的差異。這是我有:兩個日期時間之差

if ((DateTime.Now.Date - TheUTCDateTime.Date).TotalMinutes > 180) 
{ 
     ValidObject = false; 
} 

基本上,我想確保TheUTCDateTime不超過3個小時了。我正在做什麼最好的方式來做到這一點?

回答

3

您可能不想提取日期,也許想使用UtcNow而不是Now。 您還可以使用TimeSpan.FromHours期間:

if ((DateTime.UtcNow - TheUTCDateTime) > TimeSpan.FromHours(3)) 

或者乾脆

ValidObject = (DateTime.UtcNow - TheUTCDateTime) <= TimeSpan.FromHours(3); 
+4

如果是這樣'DateTime.UtcNow.Date'和'TimeSpan.FromHours(3 )'? –

+0

@RussCam - 是的,謝謝。 – Lee

1

你的做法是好的,但你可以提高一點點:

TimeSpan span = DateTime.Now - TheUTCDateTime.Date; 
ValidObject = span.TotalHours <= 3; 

既然你想檢查我使用的小時數TotalHours,我用DateTime.Now而不是Date它截斷了時間,我把它設置爲也可以到true,而您的代碼只能將其設置爲false

1

如果你想檢查是否TheUTCDateTime年齡超過3個小時,你不應該使用.Date屬性:

DateTime.UtcNow - TheUTCDateTime > TimeSpan.FromHours(3)