Delphi日期函数与日期加减Word文档格式.docx
《Delphi日期函数与日期加减Word文档格式.docx》由会员分享,可在线阅读,更多相关《Delphi日期函数与日期加减Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
![Delphi日期函数与日期加减Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/8/d6b42c00-50b5-4584-9d4b-70e6150dad92/d6b42c00-50b5-4584-9d4b-70e6150dad921.gif)
TDateTime):
描述
使用DateOf函数用来把一个TDateTime类型的变量转变成一个
只带有日期的TDateTime类型变量。
例如:
showmessage(DateTimetostr(dateof(now())));
你得到的是2003/03/19
而showmessage(DateTimetostr((now())));
得到的是2003/03/1910:
50:
49
●functionDateTimeToStr(DateTime:
string;
DateTimeToString函数将TDateTime类型的参数DateTime转换成一个
字符串,使用给定的全局变量ShortDateFormat的格式,时间部分按照
给定的全局变量LongTimeFormat的格式。
其中DateTime为零的部分将不会显示出来。
ShortDateFormat:
='
yyyymmdd'
;
showmessage(DateTimetostr((now())));
你将得到:
2003031910:
●procedureDateTimeToString(varResult:
constFormat:
DateTime:
TDateTime);
描述:
DateTimeToString方法将TDateTime类型的参数DateTime按照由参数Format提供的格式
转化成字符串,并保存在Result中。
对于Format的格式类型,请看Date-Timeformatstrings的帮助。
DateTimeToString(result,'
now());
那么result的结果为:
●procedureDateTimeToSystemTime(DateTime:
varSystemTime:
TSystemTime);
有时为了调用API函数来使用系统时间,你可以使用DateTimeToSystemTime方法,来将一个
TDateTime类型的时间变量转换成一个TSystemTime类型的系统时间。
●functionDateTimeToUnix(constAvalue:
TDateTime):
Int64;
使用DateTimeToUnix函数来将一个TDateTime型时间变量转换成一个相应的Unix格式
的日期和时间。
Unixdate-and-timevaluesareencodedasthenumberofsecondsthathaveelapsed
sincemidnightatthestartofJanuary1,1970.
●functionDateToStr(Date:
使用DateToStr函数能得到TDateTime日期时间类型的日期部分。
日期的转换格式依赖于
全局变量ShortDateFormat。
●functionDayOf(constAvalue:
Word;
对于给定的TDateTime类型的日期时间,使用DayOf函数能得到该日期是该月份的第几天。
该函数的返回数值在1到31之间
注意:
DayOf函数得到的结果与DayOfTheMonth相同。
showmessage(inttostr(dayof(now)));
得到的是:
19(今天是某月19日)
●functionDayOfTheMonth(constAvalue:
与DayOf相同。
●functionDayOfTheWeek(constAvalue:
对于给定的TDateTime类型的日期时间,使用DayOfTheWeek函数能得到该日期是该星期的
第几天。
DayOfTheWeek函数的返回数值为1到7,其中1表示星期一,而7表示星期日。
DayOfTheWeek是ISO8601标准的(此标准为星期一是一周的第一天)。
对于一周
的第一天是星期日的标准,如果想获得星期数,请使用DayOfWeek函数。
Tip:
Tomakethereturnvaluemorereadable,usetheDayofweekconstants.
●functionDayOfTheYear(constAvalue:
根据给定的日期时间参数Avalue,使用DayOfTheYear函数能得到在该日期所在的年份中,该
日期按照顺序所计算的天数。
因此,作为TDateTime类型的变量"
1月1日"
在该函数所得到的
结果为1,"
1月2日"
所得到的结果为2,"
2月1日"
所得到的结果就为32,依次类推。
●functionDayOfWeek(Date:
Integer;
Description
DayOfWeekreturnsthedayoftheweekofthespecifieddateasanintegerbetween
1and7,whereSundayisthefirstdayoftheweekandSaturdayistheseventh.
Note:
DayOfWeekisnotcompliantwiththeISO8601standard,whichdefinesMonday
asthefirstdayoftheweek.ForanISO8601compliantversion,usetheDayOfTheWeek
functioninstead.
按照给定的TDateTime类型的参数Date,DayOfWeek函数得到一周中的第几天,从1到7。
这里星期日是一周的第一天,而星期六是第七天。
●functionDaysBetween(constANow,AThen:
根据两个TDateTime类型的日期时间变量ANow和AThen,DaysBetween函数能得到两者之间的
天数的差距。
DaysBetween仅仅根据天数的不同来计算。
因此,对于1999年12月31日下午11点59分到
2000年1月1日11点58分,该函数得到的结果是0,因为两者之间的时间差别还差1分钟才到
1天。
●functionDaysInAMonth(constAYear,AMonth:
Word):
对于各定的年份和月份,DaysInAMonth函数能得到该月份的总天数。
年份应该为从1到9999
月份应该为从1到12
●functionDaysInAYear(constAYear:
对于给定的年份,DaysInAYear函数能得到该年份的总天数。
年份应该为1到9999。
●functionDaysInMonth(constAvalue:
根据给定的TDateTime类型的时间日期参数Avalue,DaysInMonth函数能得到该月份的总天数。
●functionDaysInYear(constAvalue:
根据给定的TDateTime类型的时间日期参数Avalue,DaysInYear函数能得到该年份的总天数。
●functionDaySpan(constANow,AThen:
Double;
根据两个TDateTime类型的日期时间参数ANow和AThen,DaySpan能得到在天数上的差距。
与DaysBetween函数不同,DaysBetween函数只是计算整的天数,而DaySpan函数会
将不足一天的数也得到。
此函数返回的数值为Double型。
☆Month开头的函数
●functionMonthOf(constAvalue:
根据给定的TDateTime类型的时间日期参数Avalue,MonthOf函数能得到该年份的该月份数。
MonthOf返回数值为1到12。
MonthOf函数得到的数值与MonthOfTheYear函数相同
●functionMonthOfTheYear(constAvalue:
与MonthOf函数相同。
●functionMonthsBetween(constANow,AThen:
根据两个给定的TDateTime类型的参数ANow和AThen,MonthsBetween函数能得到两个日期在月份
上差距数。
因为月份的天数是不同的,所以MonthsBetween函数返回的是一个近似值,该近似
值基于每个月份为30.4375天。
不足一个月的数字将不被计算。
因此,例如,对于2月1日到2月28日,MonthsBetween返回的数值为0。
同样,对于2月1日到3月1日,MonthsBetween返回的数值也是0。
●functionMonthSpan(constANow,AThen:
与MonthsBetween函数不同,MonthsBetween函数不计算不足
一个月的数字,MonthSpan函数将会得到不足一个月的数字。
此函数返回的类型为Double
●functionMonthStr(DateTime:
HTTPmessageheaderspermitseveralformatsfortherepresentationofdateandtime
values.MonthStrconvertsaTDateTimevalueintoastringrepresentingthemonth.
MonthStrallowsserverapplicationstoworkwithdatevaluestakenfromHTTPrequest
messages,withoutworryingaboutthedetailsofhowtheyareformatted.
☆Week开头的函数
●functionWeekOf(constAvalue:
根据TDateTime类型的日期时间参数AValu,WeekOf函数会得到该星期为一年的第几个
星期。
●functionWeeksInAYear(constAYear:
WeeksInAYear函数根据年份得到在该年份中共包含多少个星期。
●functionWeeksBetween(constANow,AThen:
根据两个TDateTime类型的日期时间参数ANow和AThen,WeeksBetween函数将得到这两个时间在
星期上的差数。
如果差数不足一个星期,则忽略掉。
●functionWeekSpan(constANow,AThen:
如果差数不足一个星期,则WeekSpan函数不会忽略掉。
此函数的返回类型为Double
☆Year开头的函数
●functionYearOf(constAvalue:
根据给定的TDateTime类型的日期时间参数Avalue,YearOf函数能得到该日期的年份数字。
YearOf函数返回的数值为从1到9999
●functionYearsBetween(constANow,AThen:
根据两个给定的TDateTime类型的参数ANow和AThen,YearsBetween函数能得到两个日期在年份
因为年份的天数是不同的,所以YearsBetween函数返回的是一个近似值,该近似
值基于每年的天数为365.25天。
不足的一年的差距将不会被计算。
因此例如:
对于1月1日和12月31日,如果这两个日期在同一年,则YearsBetween返回数值
为0;
如果这两个日期在临近的年份,则YearsBetween函数返回数值为1。
●functionYearSpan(constANow,AThen:
与YearsBetween函数不同,YearsBetween函数将忽略掉不
足一年的数字,而YearSpan将计算不足一年的数字。
该函数返回类型为Double
●functionYesterday:
Yesterday函数能得到当前日期的前一天的日期,返回数值中不包括时间部分。
当前日期是2003/3/19
则showmessage(datetimetostr(Yesterday));
将得到2003/3/18
☆日期的合成
●functionEncodeDate(Year,Month,Day:
EncodeDate函数将根据参数年份、月份、日子而得到一个TDateTime类型的时间变量。
●functionEncodeDateDay(constAYear,ADayOfYear:
EncodeDateDay将根据参数年份和天数,而得到一个TDateTime类型的时间变量。
其中AYear为1到9999。
ADayOfYear为日子在该年份顺序排列的天数,例如,1月1日时,ADayOfYear为1,
2月2日时,ADayOfYear为2,3月1日时,ADayOfYear为32。
●functionEncodeDateMonthWeek(constAYear,AMonth,AWeekOfMonth:
constADayOfWeek:
Word=
1):
EncodeDateMonthWeek函数将根据参数年份、月份、星期数,星期几,来得到一个TDateTime类型
的时间变量。
其中AMonth为1到12。
AWeekOfMonth是在该月份的星期数,1表示第一个星期,可能包含4天或更多的天数。
注意,一个月的第一天如果是星期5,星期6或星期日,用表示这三天的AMonth数值必须设定
为上一个月份的数字,同时AWeekOfMonth要设为在上一个月所在的星期数。
同样,如果一个月的最后一天是星期1,星期2,或星期3,那么用表示这三天的AMonth数值
必须设定为下一个月份的数字,同时AWeekOfMonth为1。
ADayOfWeek表示星期几,星期一为1,星期二为2。
●functionEncodeDateTime(constAYear,AMonth,ADay,AHour,AMinute,ASecond,AMilliSecond:
Word):
TDateTime;
EncodeDateTime根据参数年份、月份、日子、小时、分、秒、毫秒来得到一个TDateTime类型
日期时间。
●functionEncodeDateWeek(constAYear,AWeekOfYear:
Word=1):
EncodeDateWeek根据参数年份、星期数、星期几来得到一个TDateTime类型日期时间。
AWeekOfYear是在该年份的星期数,1表示第一个星期,可能包含4天或更多的天数。
注意,一年的第一天如果是星期5,星期6或星期日,用表示这三天的AYear数值必须设定
为上一个年份的数字,同时AWeekOfYear要设为在上一个年所在的星期数。
同样,如果一年的最后一天是星期1,星期2,或星期3,那么用表示这三天的AYear数值
必须设定为下一个年份的数字,同时AWeekOfYear为1。
●functionEncodeTime(Hour,Min,Sec,MSec:
EncodeTime函数根据参数小时、分、秒、毫秒得到个一个TDateTime数值。
☆日期的分解
●procedureDecodeDate(Date:
varYear,Month,Day:
Word);
DecodeDate从一个TDateTime类型参数Date中分解出得到年份、月份、日子。
●procedureDecodeDateDay(constAvalue:
outAYear,ADayOfYear:
DecodeDateDay方法会根据TDateTime类型参数Avalue得到相应的年份和日期总数。
ADayOfYear:
1月1日,此数值为1;
1月2日,此数值为2。
●procedureDecodeDateMonthWeek(constAvalue:
outAYear,AMonth,AWeekOfMonth,
ADayOfWeek:
DecodeDateMonthWeek方法根据TDateTime类型参数Avalue得到相应的年份、月份、月份中的第几个
星期、星期几
AYear:
年份
AMonth:
月份,1到12
AWeekOfMonth:
在该月份中的第几个星期
ADayOfWeek:
星期几。
星期一为1。
●procedureDecodeDateTime(constAvalue:
outAYear,AMonth,ADay,AHour,AMinute,
ASecond,AMilliSecond:
DecodeDateTime方法根据TDateTime类型参数Avalue得到相应的年份、月份、日子、小时、分、秒、
毫秒。
●procedureDecodeDateWeek(constAvalue:
outAYear,AWeekOfYear,ADayOfWeek:
DecodeDateWeek方法根据TDateTime类型参数Avalue得到相应的年份、在该年中的第几个星期、星期几。
1/4