2009年7月16日 星期四

計算該日期當月的天數

自訂函數做法如下:function LastDay(xDate: TDate): Word;
var
Y, M , D: Word;
const aMonthLastDay: array[1..12] of word
=(31,28,31,30,31,30,31,31,30,31,30,31);
begin
DecodeDate(xDate, Y, M, D);
if Y mod 4 = 0 then
aMonthLastDay[2] := 29
else
aMonthLastDay[2] := 28;
result := aMonthLastDay[M];
end;

2 則留言:

zq 提到...

這樣的寫法是有問題的,閏年判定並未考慮周全。
抓天數我比較喜歡先把日期抓到下個月的1號,然後再網回減一天,就可以取到這個月的最後一天日期,用這樣的方式來算本月天數。

匿名 提到...

delphi 裡有日期函數

uses system.dateUtil

var firstday,lastday:Tdatetime;

begin

firstday:=starofthemonth(now);
lastday:= endofthemonth(now);

end;