提供兩組 API:DaysInYear/Month 接收 TDateTime;DaysInAYear/AMonth 接收數值參數。同理 WeeksInYear/AYear 獲取周數(ISO 8601 規則,最多 53 週)。
| TDateTime 參數版 | 數值參數版 | 含義 |
|---|---|---|
| DaysInYear(DateTime) | DaysInAYear(Year) | 該年總天數 (365/366) |
| DaysInMonth(DateTime) | DaysInAMonth(Year, Month) | 該月總天數 (28/29/30/31) |
| WeeksInYear(DateTime) | WeeksInAYear(Year) | 該年總周數 (52/53) |
uses DateUtils;
procedure TForm1.FormCreate(Sender: TObject);
var dt: TDateTime; w: Word;
begin
dt := StrToDateTime('2009-5-20 11:22:33');
w := DaysInYear(dt); {365}
w := DaysInMonth(dt); {31}
w := DaysInAYear(2009); {365}
w := DaysInAMonth(2009, 5); {31}
w := WeeksInYear(dt); {53}
w := WeeksInAYear(2009); {53}
end;
說明: 2009 年有 53 週(ISO 8601 規則:第一周包含該年第一個周四)。閏年判斷內建於 DaysInAYear/DaysInAMonth。