4

比较 2 个DateTime对象的时间的最佳方法是什么?

例如

  • 日期时间1 = 2012-07-30 01:00
  • 日期时间2 = 2012-08-01 02:00

我只需要比较时间而不是日期。

谢谢

4

6 回答 6

9
if (DateTime1.TimeOfDay > DateTime2.TimeOfDay)
{
    MessageBox.Show("DateTime1 is later");
}
于 2012-07-30T15:09:14.147 回答
3

您可以使用DateTime.TimeOfDay来获取要比较的时间部分。这与您所做的基本相同d - d.Date

于 2012-07-30T15:09:25.977 回答
3

使用TimeOfDay属性:

http://msdn.microsoft.com/en-us/library/system.datetime.timeofday.aspx

这为您提供了没有日期部分的值的时间部分。

于 2012-07-30T15:09:37.973 回答
1

尝试这样的事情:

TimeSpan ts = d1 - d2;
int totalSecondNumber = ts.TotalSeconds;

TimeSpan 是日期之间的差异。它为您提供 TotalSeconds、TotalHours 等属性或仅提供 Seconds、Hours 等属性

于 2012-07-30T15:08:44.863 回答
1

使用 DateTime.TimeOfDay 的示例代码

DateTime timeNow = DateTime.Now;
DateTime fromTime = new DateTime(2015, 11, 14, 08, 00, 00);
DateTime toTime = new DateTime(2015, 11, 14, 14, 30, 00);

if (TimeSpan.Compare(timeNow.TimeOfDay, fromTime.TimeOfDay) == 1 && TimeSpan.Compare(timeNow.TimeOfDay, toTime.TimeOfDay) == -1)  
{
}

在上面的代码中,如果变量 timeNow 介于 08:00:00 到 14:30:00 之间,则条件为真。

1 represents time1 > time2
0 represents time1 = time2
-1 represents time1 < time2
于 2015-12-14T12:06:38.160 回答
0

如果您尝试比较两次之间的差异,您应该使用 Timespan 对象。

通过使用时间跨度,您可以获得秒、小时和天等方面的差异。

查看以下内容以获取更多信息:

时间跨度

于 2012-07-30T15:10:28.837 回答