2013-03-21 66 views
0

我希望有人能夠在這個問題上緊急幫助我。使用DateTimePicker組件比較Delphi 7中的日期

我想動態地分配一個日期到兩個DateTimePicker組件,然後比較這兩個。

我有兩個條件,我想在這裏做。首先,我想測試給組件的日期是否與當前日期相同。我不喜歡這樣寫道:

if DateClosed.date = DateCurrent.date then 
begin 
    //some code goes here 
end; 

在第二種情況下,我想測試,如果提供給dateClosed日期落在或者是還提供了兩個DateTimePicker其他兩個日期之間。

我使用的是Borland Delphi 7 Professional。

非常感謝您的幫助,但請儘量保持簡單,因爲我對Delphi相當陌生。

+3

什麼問題?爲DateTimePicker賦值或比較DateTime值? – 2013-03-21 23:45:44

回答

4

TDateTimePicker.Date包含一個時間分量(即小數點右側的小數部分),即使您已指定只需要一個日期。這會導致比較失敗,因爲即使日期部分(十進制左邊的部分)可能完全匹配,小數部分也不會。

如果你只是想比較的日期部分(忽略任何時間差),只是刪除使用Trunc小數部分(在System單元,因此自動獲得無所添加到您的使用條款):

if Trunc(DateClosed.Date) = Trunc(DateCurrent.Date) then 
    // The dates are the same 

欲瞭解更多信息,請參閱德爾福幫助文件 - XE3文檔是here,但它自從德爾福7以來沒有改變。

+0

我寧願'如果SameDate(DateClosed.Date,DateCurrent.Date)然後'''[SameDate'](http://docwiki.embarcadero.com/Libraries/XE3/en/System.DateUtils.SameDate)函數實現與此處發佈的代碼相同,但在我看來,它的可讀性更好。 [+1] – TLama 2013-03-22 10:16:37

+0

@TLama:是的,我想到了這一點,但沒有Delphi 7的副本,方便查看它是否可用。 Trunc'至少可以回到D1。 – 2013-03-22 10:53:09