難道 VCL Framework 裡就沒有好用的函式可使嗎?
答案是:有的!
在 EndOfAMonth in Delphi Basics 中有提到了我想要的東西。
在 DateUtils 裡有「StartOfTheMonth」和「EndOfTheMonth」這兩個函式,可以很輕鬆地取得指定時間的 1 號 和 28.29.30.31 的最末日
範例如下:
var vFirstDate, vLastDate: TDateTime; begin vFirstDate := DateUtils.StartOfTheMonth(Now()); vLastDate := DateUtils.EndOfTheMonth(Now()); ShowMessage('The Month first Date: ' + DateToStr(vFirstDate) + #13#10 + 'The Month last Date: ' + DateToStr(vLastDate));
只是,按「易讀程式之美學」一書所建議的起始和最末範圍命名法則有點小小的衝突,
==============
Start → First
End → Last
==============
但因為不會有「32」日這種超出日期的可能,這種小缺點就忍耐一下吧 (笑)
沒有留言:
張貼留言