C# 比较DateTime获取小时数

C# 比较DateTime获取小时数,c#,datetime,hour,C#,Datetime,Hour,我使用两个DataTimePicker(t1和t2)创建了一个计数器小时,其中 我需要的是: t1 t2 hour 11:00 23:00 12 11:00 00:00 0 11:00 13:00 2 11:00 03:00 16 如何得到这个结果?您是想要两次值的差值,还是想要时间差?(即应在08:00、06:00返回2

我使用两个DataTimePicker(t1和t2)创建了一个计数器小时,其中

我需要的是:

t1            t2            hour
11:00         23:00         12
11:00         00:00          0
11:00         13:00         2
11:00         03:00         16

如何得到这个结果?

您是想要两次值的差值,还是想要时间差?(即应在08:00、06:00返回2或-2)

另外,我不明白为什么(11:00,00:00)应该返回0

如果您只是想要值之间的差异,请使用

if (t1<t2)
    hour = t2-t1
else
    hour = t1-t2

为什么11:00和0:00之间的距离应该是0?因为0--11等于0+11,所以总是会得到+11,3--11=14,为什么它会=16?你得到的差异是对的,你想要的不是?严重的数学错误,计算机应该教你一两件事!我不明白你的意思。解释为什么
11:00-00:00=0
,而
11:00-03:00=16
00:00
是一个特例吗?我不知道如何更好地解释,但如果我这样做(小时=t2-t1),它将看起来像(9月8日09:00)-(9月9:00)=0,我需要的是(9月8日09:00)-(9月9:00)=24这就更好地解释了。你用什么语言写的?我用的是c#-windows窗体。我尝试使用DateTime.Compare(),但它只返回nº天。因此您必须将DateTimePicker的“小时”分配到t1和t2?不是。用户可以根据需要更改值。但这种差异从来没有超过24小时。正如弗拉德所说(24+3)-11=16。所以我把它放在t1和t2上,值改变了:if(t2
t1            t2            hour
11:00         23:00         12
11:00         00:00          0
11:00         13:00         2
11:00         03:00         16
if (t1<t2)
    hour = t2-t1
else
    hour = t1-t2
hour = t2-t1