2012-07-30 95 views
4

什么是比较2个DateTime对象的时间的最好方式时间的比较?2日期时间C#

例如

  • DateTime1 = 2012-07-30 01:00
  • DATETIME2 = 2012-08-01 02:00

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

感谢

+0

什么是你想比较?两次之间的区别? – 2012-07-30 15:07:52

+0

你可能会想尝试从通过DateTime2.Subtract(DateTime1)另一种减去一个DateTime和用任何你想比较,然后上班。 – beta 2012-07-30 15:09:12

回答

9
if (DateTime1.TimeOfDay > DateTime2.TimeOfDay) 
{ 
    MessageBox.Show("DateTime1 is later"); 
} 
1

尝试这样:

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

时间跨度是日期之间的差异。它给你的属性,如TotalSeconds,TotalHours等或几秒钟,时间等

+0

点是*不*的日期部分,只是在部分时间进行比较。 – Joey 2012-07-30 15:10:56

+0

虽然这不会忽略日期值。 – davenewza 2012-07-30 15:14:19

+0

TotalSeconds不会忽视的日期部分,但几秒钟就可以了。 – 2012-07-30 15:16:26

3

您可以使用DateTime.TimeOfDay得到的只是一部分时间进行比较。这和d - d.Date的效果基本相同。

0

如果你试图比较你应该使用的时间跨度对象的两个时间之间的区别。

通过使用一个时间跨度,你能获得秒,小时和天等

退房有关更多信息,以下区别:使用DateTime.TimeOfDay

Timespan

1

示例代码

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介于8时零零分00秒到14时30分00秒,则成为条件真实的。

1 represents time1 > time2 
0 represents time1 = time2 
-1 represents time1 < time2