日期和时间( Date & Time)
您编写的大多数软件都需要实现某种形式的日期函数来返回当前日期和时间。 日期是日常生活的重要组成部分,无需思考即可轻松与他们合作。 Pascal还提供了强大的日期算术工具,可以轻松操作日期。 但是,对于不同的编译器,这些函数的实际名称和工作方式是不同的。
获取当前日期和时间
Pascal的TimeToString函数以冒号(:)分隔的形式为您提供当前时间。 以下示例显示如何获取当前时间 -
program TimeDemo;
uses sysutils;
begin
writeln ('Current time : ',TimeToStr(Time));
end.
编译并执行上述代码时,会产生以下结果 -
Current time : 18:33:08
Date函数以TDateTime格式返回当前日期。 TDateTime是一个double值,需要一些解码和格式化。 以下程序演示了如何在程序中使用它来显示当前日期 -
Program DateDemo;
uses sysutils;
var
YY,MM,DD : Word;
begin
writeln ('Date : ',Date);
DeCodeDate (Date,YY,MM,DD);
writeln (format ('Today is (DD/MM/YY): %d/%d/%d ',[dd,mm,yy]));
end.
编译并执行上述代码时,会产生以下结果 -
Date: 4.111300000000000E+004
Today is (DD/MM/YY):23/7/2012
Now函数返回当前日期和时间 -
Program DatenTimeDemo;
uses sysutils;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
end.
编译并执行上述代码时,会产生以下结果 -
Date and Time at the time of writing : 23/7/2012 18:51:
Free Pascal提供了一个名为TTimeStamp的简单时间戳结构,它具有以下格式 -
type TTimeStamp = record
Time: Integer;
Date: Integer;
end;
各种日期和时间功能
Free Pascal提供以下日期和时间功能 -
Sr.No. | 功能名称和描述 |
---|---|
1 | function DateTimeToFileDate(DateTime: TDateTime):LongInt; 将DateTime类型转换为文件日期。 |
2 | function DateTimeToStr( DateTime: TDateTime):; 构造DateTime的字符串表示形式 |
3 | function DateTimeToStr(DateTime: TDateTime; const FormatSettings: TFormatSettings):; 构造DateTime的字符串表示形式 |
4 | procedure DateTimeToString(out Result: ;const FormatStr: ;const DateTime: TDateTime); 构造DateTime的字符串表示形式 |
5 | procedure DateTimeToString(out Result: ; const FormatStr: ; const DateTime: TDateTime; const FormatSettings: TFormatSettings); 构造DateTime的字符串表示形式 |
6 | procedure DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime); 将DateTime转换为系统时间 |
7 | function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp; 将DateTime转换为时间戳 |
8 | function DateToStr(Date: TDateTime):; 构造日期的字符串表示 |
9 | function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings):; 构造日期的字符串表示 |
10 | function Date: TDateTime; 获取当前日期 |
11 | function DayOfWeek(DateTime: TDateTime):Integer; 获取星期几 |
12 | procedure DecodeDate(Date: TDateTime; out Year: Word; out Month: Word; out Day: Word); 将DateTime解码为年月和日 |
13 | procedure DecodeTime(Time: TDateTime; out Hour: Word; out Minute: Word; out Second: Word; out MilliSecond: Word); 将DateTime解码为小时,分钟和秒 |
14 | function EncodeDate(Year: Word; Month: Word; Day: Word):TDateTime; 将日期,日期和月份编码为DateTime |
15 | function EncodeTime(Hour: Word; Minute: Word; Second: Word; MilliSecond: Word):TDateTime; 将日期,分钟和秒编码到DateTime |
16 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime):; 返回DateTime的字符串表示形式 |
17 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):; 返回DateTime的字符串表示形式 |
18 | function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer = 1):TDateTime; 添加1个月 |
19 | function IsLeapYear(Year: Word):Boolean; 确定年份是否为闰年 |
20 | function MSecsToTimeStamp(MSecs: Comp):TTimeStamp; 将毫秒数转换为时间戳 |
21 | function Now: TDateTime; 获取当前日期和时间 |
22 | function StrToDateTime(const S:):TDateTime; 将字符串转换为DateTime |
23 | function StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime; 将字符串转换为DateTime |
24 | function StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime; 将字符串转换为DateTime |
25 | function StrToDate(const S: ShortString):TDateTime; 将字符串转换为日期 |
26 | function StrToDate(const S: Ansistring):TDateTime; 将字符串转换为日期 |
27 | function StrToDate(const S: ShortString; separator: Char):TDateTime; 将字符串转换为日期 |
28 | function StrToDate(const S: AnsiString; separator: Char):TDateTime; 将字符串转换为日期 |
29 | function StrToDate(const S: ShortString; const useformat: ; separator: Char):TDateTime; 将字符串转换为日期 |
30 | function StrToDate(const S: AnsiString; const useformat: ; separator: Char):TDateTime; 将字符串转换为日期 |
31 | function StrToDate(const S: PChar; Len: Integer; const useformat: ; separator: Char = #0):TDateTime; 将字符串转换为日期 |
32 | function StrToTime(const S: Shortstring):TDateTime; 将字符串转换为时间 |
33 | function StrToTime(const S: Ansistring):TDateTime; 将字符串转换为时间 |
34 | function StrToTime(const S: ShortString; separator: Char):TDateTime; 将字符串转换为时间 |
35 | function StrToTime(const S: AnsiString; separator: Char):TDateTime; 将字符串转换为时间 |
36 | function StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime; 将字符串转换为时间 |
37 | function StrToTime(const S: PChar; Len: Integer; separator: Char = #0):TDateTime; 将字符串转换为时间 |
38 | function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime; 将系统时间转换为日期时间 |
39 | function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime; 将时间戳转换为DateTime |
40 | function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp; 将时间戳转换为毫秒数 |
41 | function TimeToStr(Time: TDateTime):; 返回Time的字符串表示形式 |
42 | function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):; 返回Time的字符串表示形式 |
43 | function Time: TDateTime; 获取当前时间 |
以下示例说明了上述某些功能的使用 -
Program DatenTimeDemo;
uses sysutils;
var
year, month, day, hr, min, sec, ms: Word;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
writeln('Today is ',LongDayNames[DayOfWeek(Date)]);
writeln;
writeln('Details of Date: ');
DecodeDate(Date,year,month,day);
writeln (Format ('Day: %d',[day]));
writeln (Format ('Month: %d',[month]));
writeln (Format ('Year: %d',[year]));
writeln;
writeln('Details of Time: ');
DecodeTime(Time,hr, min, sec, ms);
writeln (format('Hour: %d:',[hr]));
writeln (format('Minutes: %d:',[min]));
writeln (format('Seconds: %d:',[sec]));
writeln (format('Milliseconds: %d:',[hr]));
end.
编译并执行上述代码时,会产生以下结果:
Date and Time at the time of writing : 7/24/2012 8:26:
Today is Tuesday
Details of Date:
Day:24
Month:7
Year: 2012
Details of Time:
Hour: 8
Minutes: 26
Seconds: 21
Milliseconds: 8