2012-08-09 145 views
1

为什么下面的代码会导致(-1)?日期比较结果

当startDate设置为7/9/12 5:00:00 AM compareValue返回1.我期望在下面的场景中获得积极的1,但获得(-1)。

startDate = "7/16/2012 5:00:00 AM" 
endDate = "7/17/2012 5:00:00 AM" 

//enter code here 
int compareValue = startDate.CompareTo(endDate); 

回答

1

您好像比较strings这里。如果使用字符串'7/9/12 5:00:00 AM'进行比较,则得到的结果为1,因为'7/9/12 5:00:00 AM'按字典顺序大于'7/17/2012 5:00:00 AM'

+0

这是有道理的,谢谢汤姆 - 我试过使用DateTime.Parse()和Convert.toDateTime但结果相同。我将comparTo切换到DateTime.Compare(startDate,endDate),它似乎正常工作。 – Blake 2012-08-09 17:04:40

3

-1意味着startDateendDate,这是真的在这种情况下更早。根据docsCompareTo回报:

  • < 0实例比值
  • == 0早期的教实例是相同的值
  • > 0实例晚于值或值是空
0

CompareTo方法返回-1:2012/7/16 5:00:00早于7/1/2012 5:00:00上午

Link : http://msdn.microsoft.com/fr-fr/library/5ata5aya.aspx