我一直在尋找一段時間的答案,但我實際上找不到它。DateTime.CompareTo實際返回什麼整數?
我特別看着this page。在那裏它說CompareTo
方法返回一個整數,指示它是否早於,相同或更晚。我理解它的使用,我明白,以前的整數是負的,因爲它是0等。
但是這個整數是什麼?它是以秒,毫秒,滴答還是什麼都不回?我希望你能幫助我,如果有人可以找到這個問題的另一個帖子,請告訴我。我真的很驚訝,我無法立即在這個主題上找到一個問題...
我一直在尋找一段時間的答案,但我實際上找不到它。DateTime.CompareTo實際返回什麼整數?
我特別看着this page。在那裏它說CompareTo
方法返回一個整數,指示它是否早於,相同或更晚。我理解它的使用,我明白,以前的整數是負的,因爲它是0等。
但是這個整數是什麼?它是以秒,毫秒,滴答還是什麼都不回?我希望你能幫助我,如果有人可以找到這個問題的另一個帖子,請告訴我。我真的很驚訝,我無法立即在這個主題上找到一個問題...
的文件實際上是在IComparable的接口頁面(即日期時間工具): http://msdn.microsoft.com/en-us/library/system.icomparable.aspx
CompareTo(Object)方法的實現必須返回具有三個值之一的Int32,如下表所示。
小於零:當前實例之前的目的是通過在排序順序CompareTo方法指定 。
零:該當前實例發生在排序順序由CompareTo方法所指定的對象的相同位置。
大於零:此當前實例遵循CompareTo方法按排序順序指定的對象。
這是一個實施細節,你應該永遠不需要知道,並且可以在任何時候改變。在只有3個類別:
如果你發現自己使用什麼比這多,那麼什麼是錯的。
這是實現IComparable.CompareTo。這意味着如果相等,則返回0;如果更大,則返回正整數;更小時返回負整數。
(預編輯)您鏈接的頁面明確表示-ve,零,+ ve; ***不*** -1,0,1 –
沒有什麼規定,根據MSDN:
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
如果你想2個DateTime是否你應該尋找這樣的事情之間的比較天:
if ((expiryDate - DateTime.Now).Days < 30)
那麼這就意味着我無法使用它來快速找到兩次之間的區別?我將不得不減去它們然後尋找那個差異? – phil13131
恕我直言,它是一個實現細節並不意味着我不應該知道它,或者說,不要**想知道它。框架邏輯的內部工作本身很有趣。 – Rotem
@ phil13131找到兩次之間的差異:減去它們以獲得時間跨度 –