- Pascal 教程
- Pascal - 首页
- Pascal - 概述
- Pascal - 环境设置
- Pascal - 程序结构
- Pascal - 基本语法
- Pascal - 数据类型
- Pascal - 变量类型
- Pascal - 常量
- Pascal - 运算符
- Pascal - 决策
- Pascal - 循环
- Pascal - 函数
- Pascal - 过程
- Pascal - 变量作用域
- Pascal - 字符串
- Pascal - 布尔值
- Pascal - 数组
- Pascal - 指针
- Pascal - 记录
- Pascal - 变体
- Pascal - 集合
- Pascal - 文件处理
- Pascal - 内存
- Pascal - 单元
- Pascal - 日期与时间
- Pascal - 对象
- Pascal - 类
- Pascal 有用资源
- Pascal - 快速指南
- Pascal - 有用资源
- Pascal - 讨论
Pascal - 日期和时间
您编写的许多软件都需要实现某种形式的日期函数来返回当前日期和时间。日期在日常生活中如此常见,以至于在不加思考的情况下就能轻松地使用它们。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 |
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; 将系统时间转换为 datetime |
| 39 |
function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime; 将时间戳转换为 DateTime |
| 40 |
function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp; 将时间戳转换为毫秒数 |
| 41 |
function TimeToStr(Time: TDateTime):; 返回时间的字符串表示形式 |
| 42 |
function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):; 返回时间的字符串表示形式 |
| 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