C#:计算时差

时间:2010-09-28 11:38:32

标签: c#

使用以下内容: -

TimeSpan diff = dt2.TimeOfDay - dt1.TimeOfDay;

d1,d2是DateTime类型的2个变量,它们中有值

现在我想检查是否有12小时的差异

if(diff>12)

{
//do stuff
}

现在当然它不会因为12是一个int ..所以如何检查时间是否超过12小时?需要帮助这个if语句只有..thnx

6 个答案:

答案 0 :(得分:11)

一般的解决方案是构造一个对应于截止的TimeSpan对象:

if(diff > TimeSpan.FromHours(12))
{
   ...
}

如果截止值对应于例如天,小时,分钟,秒或毫秒的“漂亮”时间单位的倍数,则可以使用TotalXXX TimeSpan属性},正如其他人发布的那样:

if(diff.TotalHours > 12)
{
   ...
}

答案 1 :(得分:3)

要明确回答您的问题,请使用TimeSpan结构中的一个属性,通常是TotalHours属性。这里还有其他更简单的答案,告诉你如何做到这一点,所以我不再重复了。

然而,这意味着我必须相信你的问题是完整的,我认为只是忽略日期部分会给你至少需要知道的边缘情况。

例如,使用以下两个时间值,它们之间有多长时间?

18:00
08:00

这两者之间是-10小时,还是14小时?

要正确回答您的问题,我个人希望您告诉我您打算如何使用这些值,对您来说意味着什么,并举几个例子。

答案 2 :(得分:2)

使用

if( diff.TotalHours > 12){
  ....
}

答案 3 :(得分:2)

您是否真的使用过intellisense并注意到diff TimeSpan对象上的HoursTotalHours属性?

答案 4 :(得分:1)

TimeSpan.FromHours you need to use to find the difference

答案 5 :(得分:0)

TimeSpan diff = dt2.Substract(dt1);
if (diff.TotalHours > 12)
{
  // Do something
}