帕斯卡 - 日期和时间


您编写的大多数软件都需要实现某种形式的日期函数来返回当前日期和时间。日期是日常生活的一部分,因此不假思索地使用它们变得很容易。Pascal 还提供了强大的日期算术工具,使操作日期变得容易。然而,对于不同的编译器,这些函数的实际名称和工作方式是不同的。

获取当前日期和时间

Pascal 的 TimeToString 函数以冒号 (:) 分隔的形式提供当前时间。以下示例显示如何获取当前时间 -

program TimeDemo;
uses sysutils;

begin
   writeln ('Current time : ',TimeToStr(Time));
end.

当上面的代码被编译并执行时,它会产生以下结果 -

Current time : 18:33:08

Date函数以TDateTime格式返回当前日期。TDateTime 是一个双精度值,需要进行一些解码和格式化。以下程序演示了如何在程序中使用它来显示当前日期 -

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 提供以下日期和时间函数 -

先生。 函数名称和描述
1

函数 DateTimeToFileDate(DateTime: TDateTime):LongInt;

将 DateTime 类型转换为文件日期。

2

函数 DateTimeToStr( DateTime: TDateTime):;

构造 DateTime 的字符串表示形式

3

函数 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

过程 DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime);

将日期时间转换为系统时间

7

函数 DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp; 将日期时间转换为时间戳

8

函数 DateToStr(日期: TDateTime):;

构造日期的字符串表示形式

9

函数 DateToStr(日期: TDateTime; const FormatSettings: TFormatSettings):;

构造日期的字符串表示形式

10

函数日期:TDateTime;

获取当前日期

11

函数 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

函数 EncodeDate(年:Word;月:Word;日:Word):TDateTime;

将年、日、月编码为 DateTime

15

function EncodeTime(小时: Word; 分钟: Word; 秒: Word; 毫秒: Word):TDateTime;

将小时、分钟和秒编码为 DateTime

16

函数 FormatDateTime(const FormatStr: ; DateTime: TDateTime):;

返回日期时间的字符串表示形式

17 号

函数 FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):;

返回日期时间的字符串表示形式

18

函数 IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer = 1):TDateTime;

月份加 1

19

函数 IsLeapYear(年份: Word):Boolean;

判断年份是否为闰年

20

函数 MSecsToTimeStamp(MSecs: Comp):TTimeStamp;

将毫秒数转换为时间戳

21

现在函数:TDateTime;

获取当前日期和时间

22

函数 StrToDateTime(const S:):TDateTime;

将字符串转换为日期时间

23

函数 StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime;

将字符串转换为日期时间

24

函数 StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime;

将字符串转换为日期时间

25

函数 StrToDate(const S: ShortString):TDateTime;

将字符串转换为日期

26

函数 StrToDate(const S: Ansistring):TDateTime;

将字符串转换为日期

27

函数 StrToDate(const S: ShortString; 分隔符: Char):TDateTime;

将字符串转换为日期

28

函数 StrToDate(const S: AnsiString; 分隔符: Char):TDateTime;

将字符串转换为日期

29

函数 StrToDate(const S: ShortString; const useformat: ; 分隔符: Char):TDateTime;

将字符串转换为日期

30

函数 StrToDate(const S: AnsiString; const useformat: ; 分隔符: Char):TDateTime;

将字符串转换为日期

31

function StrToDate(const S: PChar; Len: Integer; const useformat: ; 分隔符: Char = #0):TDateTime;

将字符串转换为日期

32

函数 StrToTime(const S: Shortstring):TDateTime;

将字符串转换为时间

33

函数 StrToTime(const S: Ansistring):TDateTime;

将字符串转换为时间

34

函数 StrToTime(const S: ShortString; 分隔符: Char):TDateTime;

将字符串转换为时间

35

函数 StrToTime(const S: AnsiString; 分隔符: Char):TDateTime;

将字符串转换为时间

36

函数 StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime;

将字符串转换为时间

37

函数 StrToTime(const S: PChar; Len: Integer; 分隔符: Char = #0):TDateTime;

将字符串转换为时间

38

函数 SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime;

将系统时间转换为日期时间

39

函数 TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime;

将时间戳转换为日期时间

40

函数 TimeStampToMSecs(const TimeStamp: TTimeStamp):comp;

将时间戳转换为毫秒数

41

函数 TimeToStr(时间: TDateTime):;

返回时间的字符串表示形式

42

函数 TimeToStr(时间: TDateTime; const FormatSettings: TFormatSettings):;

返回时间的字符串表示形式

43

函数时间: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