DecodeDate(DateTime: TDateTime; var Year, Month, Day: Word) — 分解年月日DecodeDateFully(DateTime: TDateTime; var Year, Month, Day, DayOfWeek: Word) — 含星期幾(1=週一)DecodeTime(DateTime: TDateTime; var Hour, Min, Sec, MSec: Word) — 分解時分秒毫秒DecodeDateTime(DateTime: TDateTime; var Year, Month, Day, Hour, Min, Sec, MSec: Word) — 一次分解所有DecodeDateDay(DateTime: TDateTime; var Year, DayOfYear: Word) — 年內第幾天DecodeDateWeek(DateTime: TDateTime; var Year, WeekOfYear, DayOfWeek: Word) — ISO 週號DecodeDateMonthWeek(DateTime: TDateTime; var Year, Month, WeekOfMonth, DayOfWeek: Word) — 月內第幾周DecodeDayOfWeekInMonth(DateTime: TDateTime; var Year, Month, WeekOfMonth, DayOfWeek: Word) — 同上別名uses DateUtils;
procedure TForm1.FormCreate(Sender: TObject);
var
dt: TDateTime;
Year, Month, Day, Week, Hour, Min, Sec, MSec: Word;
begin
dt := EncodeDateTime(2009, 5, 21, 11, 22, 33, 999);
DecodeDate(dt, Year, Month, Day);
ShowMessageFmt('DecodeDate: %d-%d-%d', [Year, Month, Day]); // 2009-5-21
DecodeDateFully(dt, Year, Month, Day, Week);
ShowMessageFmt('DecodeDateFully: %d-%d-%d 星期%d', [Year, Month, Day, Week]); // 星期4
DecodeTime(dt, Hour, Min, Sec, MSec);
ShowMessageFmt('DecodeTime: %d:%d:%d.%d', [Hour, Min, Sec, MSec]); // 11:22:33.999
DecodeDateTime(dt, Year, Month, Day, Hour, Min, Sec, MSec);
ShowMessageFmt('DecodeDateTime: %d-%d-%d %d:%d:%d.%d', [Year, Month, Day, Hour, Min, Sec, MSec]);
DecodeDateDay(dt, Year, Day);
ShowMessageFmt('年度第 %d 天', [Day]); // 141
DecodeDateWeek(dt, Year, Week, Day);
ShowMessageFmt('第 %d 周 星期%d', [Week, Day]); // 第21周 星期4
DecodeDateMonthWeek(dt, Year, Month, Week, Day);
ShowMessageFmt('%d年%d月第%d周 星期%d', [Year, Month, Week, Day]); // 5月第3周 星期4
end;
僅需年月日用 DecodeDate;需星期用 DecodeDateFully;完整分解用 DecodeDateTime;統計按年/周/月天數用 DateUtils 系列。