2013-11-23 108 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)