Delphi日期时间函数

1function DateOf(const AValue: TDateTime): TDateTime; 描述使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个只带有日期的 TDateTime 类型变量。例如: showmessage(DateTimetostr(dateof(now()))); 你得到的是 2003/03/19 showmessage(DateTimetostr((now()))); 得到的是 2003/03/19 10:50:49

2function DateTimeToStr(DateTime: TDateTime): string; 描述 DateTimeToString 函数将 TDateTime 类型的参数 DateTime 转换成一个字符串,使用给定的全局变量 ShortDateFormat 的格式,时间部分按照给定的全局变量 LongTimeFormat 的格式。其中 DateTime 为零的部分将不会显示出来。 例如: ShortDateFormat:=yyyy mm dd; showmessage(DateTimetostr((now()))); 你将得到:2003 03 19 10:50:49

3procedure 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

4procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); 描述:有时为了调用API函数来使用系统时间,你可以使用 DateTimeToSystemTime 方法,来将一个 TDateTime 类型的时间变量转换成一个 TSystemTime 类型的系统时间。

5function DateTimeToUnix(const AValue: TDateTime ): Int64; 描述:使用 DateTimeToUnix 函数来将一个 TDateTime 型时间变量转换成一个相应的 Unix 格式的日期和时间。

6function DateToStr(Date: TDateTime): string; 描述:使用 DateToStr 函数能得到 TDateTime 日期时间类型的日期部分。日期的转换格式依赖于全局变量 ShortDateFormat

时间计算函数

7function DayOf(const AValue: TDateTime): Word; 描述:对于给定的TDateTime类型的日期时间,使用 DayOf 函数能得到该日期是该月份的第几天。该函数的返回数值在 1 31 之间注意:DayOf 函数得到的结果与 DayOfTheMonth 相同。 例如: showmessage(inttostr(dayof(now))); 得到的是:19 (今天是某月19日)

8function DayOfTheMonth(const AValue: TDateTime): Word; DayOf 相同。

9function 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.

10function DayOfTheYear(const AValue: TDateTime): Word; 描述:根据给定的日期时间参数AValue,使用 DayOfTheYear 函数能得到在该日期所在的年份中,该日期按照顺序所计算的天数。因此,作为TDateTime类型的变量 “11在该函数所得到的结果为 1 “12所得到的结果为 2“21所得到的结果就为 32,依次类推。

12function DaysBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个TDateTime类型的日期时间变量 ANow AThenDaysBetween函数能得到两者之间的天数的差距。 DaysBetween 仅仅根据天数的不同来计算。因此,对于 19991231日 下午1159分 到 200011 1158分,该函数得到的结果是 0,因为两者之间的时间差别还差 1 分钟才到 1 天。

13function DaysInAMonth(const AYear, AMonth: Word): Word; 描述:对于各定的年份和月份,DaysInAMonth 函数能得到该月份的总天数。年份应该为 从 1 9999 月份应该为 从 1 12

14function DaysInAYear(const AYear: Word): Word; 描述:对于给定的年份,DaysInAYear函数能得到该年份的总天数。年份应该为 1 9999


15function DaysInMonth(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValueDaysInMonth函数能得到该月份的总天数。


16function DaysInYear(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValueDaysInYear函数能得到该年份的总天数。


17function DaySpan(const ANow, AThen: TDateTime): Double; 描述:根据两个TDateTime类型的日期时间参数ANowAThenDaySpan能得到在天数上的差距。与 DaysBetween 函数不同,DaysBetween 函数 只是计算整的天数,而 DaySpan函数会将不足一天的数也得到。注意:此函数返回的数值为 Double 型。

☆ Month 开头的函数
18
function MonthOf(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的时间日期参数AValueMonthOf函数能得到该年份的该月份数。 MonthOf返回数值为 1 12。注意:MonthOf函数得到的数值与MonthOfTheYear函数相同


19function MonthOfTheYear(const AValue: TDateTime): Word; MonthOf函数相同。


20function MonthsBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个给定的TDateTime类型的参数ANowAThenMonthsBetween函数能得到两个日期在月份上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似值基于每个月份为 30.4375 天。不足一个月的数字将不被计算。因此,例如,对于 21日 到 228日,MonthsBetween 返回的数值为 0。同样,对于 21日 到 31日,MonthsBetween 返回的数值也是 0


21function MonthSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个给定的TDateTime类型的参数ANowAThenMonthsBetween函数能得到两个日期在月份上差距数。因为月份的天数是不同的,所以 MonthsBetween 函数返回的是一个近似值,该近似值基于每个月份为 30.4375 天。与 MonthsBetween 函数不同,MonthsBetween函数不计算不足一个月的数字,MonthSpan函数将会得到不足一个月的数字。注意:此函数返回的类型为 Double

22function 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类型的日期时间参数AValuWeekOf函数会得到该星期为一年的第几个星期


24function WeeksInAYear(const AYear: Word): Word; 描述: WeeksInAYear 函数根据年份得到在该年份中共包含多少个星期。


25function WeeksBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个TDateTime类型的日期时间参数ANowAThenWeeksBetween函数将得到这两个时间在星期上的差数。如果差数不足一个星期,则忽略掉。


26function WeekSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个TDateTime类型的日期时间参数ANowAThenWeeksBetween函数将得到这两个时间在星期上的差数。如果差数不足一个星期,则WeekSpan函数不会忽略掉。注意:此函数的返回类型为 Double

☆ Year 开头的函数
27
function YearOf(const AValue: TDateTime): Word; 描述:根据给定的TDateTime类型的日期时间参数AValueYearOf函数能得到该日期的年份数字。 YearOf函数返回的数值为从 1 9999


28function YearsBetween(const ANow, AThen: TDateTime): Integer; 描述:根据两个给定的TDateTime类型的参数ANowAThenYearsBetween函数能得到两个日期在年份上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似值基于每年的天数为 365.25 天。不足的一年的差距将不会被计算。因此例如:对于 11日和1231日,如果这两个日期在同一年,则 YearsBetween 返回数值为 0;如果这两个日期在临近的年份,则 YearsBetween 函数返回数值为 1


29function YearSpan(const ANow, AThen: TDateTime): Double; 描述:根据两个给定的TDateTime类型的参数ANowAThenYearsBetween函数能得到两个日期在年份上差距数。因为年份的天数是不同的,所以 YearsBetween 函数返回的是一个近似值,该近似值基于每年的天数为 365.25 天。与 YearsBetween 函数不同,YearsBetween函数将忽略掉不足一年的数字,而 YearSpan 将计算不足一年的数字。注意:该函数返回类型为Double

其他时间函数


30function Yesterday: TDateTime; 描述: Yesterday函数能得到当前日期的前一天的日期,返回数值中不包括时间部分。例如:当前日期是 2003/3/19 showmessage(datetimetostr(Yesterday)); 将得到 2003/3/18

日期的生成
31
function EncodeDate(Year, Month, Day: Word): TDateTime; 描述: EncodeDate函数将根据参数 年份、月份、日子而得到一个TDateTime类型的时间变量。


32function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime; 描述: EncodeDateDay将根据参数年份和天数,而得到一个TDateTime类型的时间变量。其中AYear 1 9999 ADayOfYear 为日子在该年份顺序排列的天数,例如,11日时,ADayOfYear1 22日时,ADayOfYear231日时,ADayOfYear32


33function 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


34function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word):TDateTime; 描述: EncodeDateTime 根据参数 年份、月份、日子、小时、分、秒、毫秒来得到一个TDateTime类型日期时间。


35function 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


36function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; 描述: EncodeTime函数根据参数 小时、分、秒、毫秒得到个一个TDateTime数值。

日期的分解
37
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); 描述: DecodeDate从一个TDateTime类型参数Date中分解出得到年份、月份、日子。


38procedure DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word); 描述: DecodeDateDay 方法会根据TDateTime类型参数AValue 得到相应的年份和日期总数。 ADayOfYear11日,此数值为112日,此数值为2


39procedure DecodeDateMonthWeek(const AValue: TDateTime; out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word); 描述: DecodeDateMonthWeek方法根据TDateTime类型参数AValue 得到相应的年份、月份、月份中的第几个星期、星期几 AYear:年份 AMonth:月份,1 12 AWeekOfMonth:在该月份中的第几个星期 ADayOfWeek:星期几。星期一为1


40procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word); 描述: DecodeDateTime 方法根据TDateTime类型参数AValue 得到相应的年份、月份、日子、小时、分、秒、毫秒。


41procedure DecodeDateWeek(const AValue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word); 描述: DecodeDateWeek方法根据TDateTime类型参数AValue 得到相应的年份、在该年中的第几个星期、星期

posted @ 2011-08-02 15:41  大漠孤烟SKY  阅读(4527)  评论(0)    收藏  举报