2013-11-23 8 views
0

Я хочу рассчитать разницу между двумя DateTimes. Это то, что у меня есть:разница между двумя датами времени

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, который усекает время, и я установил его lso to true, тогда как ваш код устанавливает только false.

1

Если вы хотите проверить, является ли TheUTCDateTime старше 3-х часов, вы не должны использовать .Date свойство:

DateTime.UtcNow - TheUTCDateTime > TimeSpan.FromHours(3) 
Смежные вопросы