Delphi日期时间函数
1、function DateOf(const AValue: TDateTime): TDateTime; 描述使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个只带有日期的 TDateTime 类型变量。例如: showmessage(DateTimetostr(dateof(now()))); 你得到的是 2003/03/19 而 showmessage(DateTimetostr((now()))); 得到的是 2003/03/19 10:50:49
2、function DateTimeToStr(DateTime: TDateTime): string; 描述 DateTimeToString 函数将 TDateTime 类型的参数 DateTime 转换成一个字符串,使用给定的全局变量 ShortDateFormat 的格式,时间部分按照给定的全局变量 LongTimeFormat 的格式。其中 DateTime 为零的部分将不会显示出来。 例如: ShortDateFormat:=yyyy mm dd; showmessage(DateTimetostr((now()))); 你将得到:2003 03 19 10:50:49
3、procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime); 描述: DateTimeToString 方法将TDateTime类型的参数DateTime 按照由参数Format提供的格式转化成字符串,并保存在Result中。对于Format的格式类型,请看 Date-Time format strings 的帮助。 例如: DateTimeToString(result,yyyy mm dd,now()); 那么 result的结果为:2003 03 19 10:50:49
4、procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); 描述:有时为了调用API函数来使用系统时间,你可以使用 DateTimeToSystemTime 方法,来将一个 TDateTime 类型的时间变量转换成一个 TSystemTime 类型的系统时间。
5、function DateTimeToUnix(const AValue: TDateTime ): Int64; 描述:使用 DateTimeToUnix 函数来将一个 TDateTime 型时间变量转换成一个相应的 Unix 格式的日期和时间。
6、function DateToStr(Date: TDateTime): string; 描述:使用 DateToStr 函数能得到 TDateTime 日期时间类型的日期部分。日期的转换格式依赖于全局变量 ShortDateFormat。
时间计算函数
7、function DayOf(const AValue: TDateTime): Word; 描述:对于给定的TDateTime类型的日期时间,使用 DayOf 函数能得到该日期是该月份的第几天。该函数的返回数值在 1 到 31 之间注意:DayOf 函数得到的结果与 DayOfTheMonth 相同。 例如: showmessage(inttostr(dayof(now))); 得到的是:19 (今天是某月19日)
8、function DayOfTheMonth(const AValue: TDateTime): Word; 与 DayOf 相同。
9、function DayOfTheWeek(const AValue: TDateTime): Word; 描述:对于给定的TDateTime类型的日期时间,使用 DayOfTheWeek 函数能得到该日期是该星期的第几天。DayOfTheWeek 函数的返回数值为 1 到 7,其中 1 表示星期一,而 7 表示星期日。注意:DayOfTheWeek 是 ISO 8601 标准的(此标准为星期一是一周的第一天)。对于一周的第一天是星期日的标准,如果想获得星期数,请使用 DayOfWeek 函数。 Tip: To make the return value more readable, use the Day of week constants.
10、function DayOfTheYear(const AValue: TDateTime): Word; 描述:根据给定的日期时间参数AValue,使用 DayOfTheYear 函数能得到在该日期所在的年份中,该日期按照顺序所计算的天数。因此,作为TDateTime类型的变量 “1月1日”在该函数所得到的结果为 1 ,“1月2日”所得到的结果为 2,“2月1日”所得到的结果就为 32,依次类推。
12、function DaysBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个TDateTime类型的日期时间变量 ANow 和 AThen,DaysBetween函数能得到两者之间的天数的差距。 DaysBetween 仅仅根据天数的不同来计算。因此,对于 1999年12月31日 下午11点59分 到 2000年1月1日 11点58分,该函数得到的结果是 0,因为两者之间的时间差别还差 1 分钟才到 1 天。
13、function DaysInAMonth(const AYear, AMonth: Word): Word; 描述:对于各定的年份和月份,DaysInAMonth 函数能得到该月份的总天数。年份应该为 从 1 到 9999 月份应该为 从 1 到 12
14、function DaysInAYear(const AYear: Word): Word; 描述:对于给定的年份,DaysInAYear函数能得到该年份的总天数。年份应该为 1 到 9999。
15、function DaysInMonth(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValue,DaysInMonth函数能得到该月份的总天数。
16、function DaysInYear(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValue,DaysInYear函数能得到该年份的总天数。
17、function DaySpan(const ANow, AThen: TDateTime): Double; 描述:根据两个TDateTime类型的日期时间参数ANow和AThen,DaySpan能得到在天数上的差距。与 DaysBetween 函数不同,DaysBetween 函数 只是计算整的天数,而 DaySpan函数会将不足一天的数也得到。注意:此函数返回的数值为 Double 型。
☆ Month 开头的函数
18、function MonthOf(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValue,MonthOf函数能得到该年份的该月份数。 MonthOf返回数值为 1 到 12。注意:MonthOf函数得到的数值与MonthOfTheYear函数相同
19、function MonthOfTheYear(const AValue: TDateTime): Word; 与MonthOf函数相同。
20、function MonthsBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似值基于每个月份为 30.4375 天。不足一个月的数字将不被计算。因此,例如,对于 2月1日 到 2月28日,MonthsBetween 返回的数值为 0。同样,对于 2月1日 到 3月1日,MonthsBetween 返回的数值也是 0。
21、function MonthSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似值基于每个月份为 30.4375 天。与 MonthsBetween 函数不同,MonthsBetween函数不计算不足一个月的数字,MonthSpan函数将会得到不足一个月的数字。注意:此函数返回的类型为 Double
22、function MonthStr(DateTime: TDateTime): string; Description HTTP message headers permit several formats for the representation of date and time values. MonthStr converts a TDateTime value into a string representing the month. MonthStr allows server applications to work with date values taken from HTTP request messages, without worrying about the details of how they are formatted.
☆ Week 开头的函数
23、function WeekOf(const AValue: TDateTime): Word; 描述:根据TDateTime类型的日期时间参数AValu,WeekOf函数会得到该星期为一年的第几个星期
24、function WeeksInAYear(const AYear: Word): Word; 描述: WeeksInAYear 函数根据年份得到在该年份中共包含多少个星期。
25、function WeeksBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在星期上的差数。如果差数不足一个星期,则忽略掉。
26、function WeekSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在星期上的差数。如果差数不足一个星期,则WeekSpan函数不会忽略掉。注意:此函数的返回类型为 Double
☆ Year 开头的函数
27、function YearOf(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的日期时间参数AValue,YearOf函数能得到该日期的年份数字。 YearOf函数返回的数值为从 1 到 9999
28、function YearsBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个给定的TDateTime类型的参数ANow和AThen,YearsBetween函数能得到两个日期在年份上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似值基于每年的天数为 365.25 天。不足的一年的差距将不会被计算。因此例如:对于 1月1日和12月31日,如果这两个日期在同一年,则 YearsBetween 返回数值为 0;如果这两个日期在临近的年份,则 YearsBetween 函数返回数值为 1。
29、function YearSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个给定的TDateTime类型的参数ANow和AThen,YearsBetween函数能得到两个日期在年份上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似值基于每年的天数为 365.25 天。与 YearsBetween 函数不同,YearsBetween函数将忽略掉不足一年的数字,而 YearSpan 将计算不足一年的数字。注意:该函数返回类型为Double
其他时间函数
30、function Yesterday: TDateTime; 描述: Yesterday函数能得到当前日期的前一天的日期,返回数值中不包括时间部分。例如:当前日期是 2003/3/19 则 showmessage(datetimetostr(Yesterday)); 将得到 2003/3/18
日期的生成
31、function EncodeDate(Year, Month, Day: Word): TDateTime; 描述: EncodeDate函数将根据参数 年份、月份、日子而得到一个TDateTime类型的时间变量。
32、function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime; 描述: EncodeDateDay将根据参数年份和天数,而得到一个TDateTime类型的时间变量。其中AYear 为 1 到 9999。 ADayOfYear 为日子在该年份顺序排列的天数,例如,1月1日时,ADayOfYear为1, 2月2日时,ADayOfYear为2,3月1日时,ADayOfYear为32。
33、function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth: Word; const ADayOfWeek: Word = 1): TDateTime; 描述: EncodeDateMonthWeek 函数将根据参数年份、月份、星期数,星期几,来得到一个TDateTime类型的时间变量。其中AYear 为 1 到 9999。其中AMonth 为 1 到 12。 AWeekOfMonth是在该月份的星期数,1 表示第一个星期,可能包含4天或更多的天数。注意,一个月的第一天如果是星期5,星期6或星期日,用表示这三天的AMonth数值必须设定为上一个月份的数字,同时 AWeekOfMonth 要设为在上一个月所在的星期数。同样,如果一个月的最后一天是星期1,星期2,或星期3,那么用表示这三天的AMonth数值必须设定为下一个月份的数字,同时 AWeekOfMonth 为 1。 ADayOfWeek表示星期几,星期一为1,星期二为2。
34、function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word):TDateTime; 描述: EncodeDateTime 根据参数 年份、月份、日子、小时、分、秒、毫秒来得到一个TDateTime类型日期时间。
35、function EncodeDateWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime; 描述: EncodeDateWeek 根据参数 年份、星期数、星期几来得到一个TDateTime类型日期时间。 AWeekOfYear是在该年份的星期数,1 表示第一个星期,可能包含4天或更多的天数。注意,一年的第一天如果是星期5,星期6或星期日,用表示这三天的AYear数值必须设定为上一个年份的数字,同时 AWeekOfYear 要设为在上一个年所在的星期数。同样,如果一年的最后一天是星期1,星期2,或星期3,那么用表示这三天的AYear数值必须设定为下一个年份的数字,同时 AWeekOfYear 为 1。 ADayOfWeek表示星期几,星期一为1,星期二为2。
36、function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; 描述: EncodeTime函数根据参数 小时、分、秒、毫秒得到个一个TDateTime数值。
☆日期的分解
37、procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); 描述: DecodeDate从一个TDateTime类型参数Date中分解出得到年份、月份、日子。
38、procedure DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word); 描述: DecodeDateDay 方法会根据TDateTime类型参数AValue 得到相应的年份和日期总数。 ADayOfYear:1月1日,此数值为1;1月2日,此数值为2。
39、procedure DecodeDateMonthWeek(const AValue: TDateTime; out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word); 描述: DecodeDateMonthWeek方法根据TDateTime类型参数AValue 得到相应的年份、月份、月份中的第几个星期、星期几 AYear:年份 AMonth:月份,1 到 12 AWeekOfMonth:在该月份中的第几个星期 ADayOfWeek:星期几。星期一为1。
40、procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word); 描述: DecodeDateTime 方法根据TDateTime类型参数AValue 得到相应的年份、月份、日子、小时、分、秒、毫秒。
41、procedure DecodeDateWeek(const AValue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word); 描述: DecodeDateWeek方法根据TDateTime类型参数AValue 得到相应的年份、在该年中的第几个星期、星期

浙公网安备 33010602011771号