ปาสกาล - วันที่และเวลา

โปรแกรมส่วนใหญ่ที่คุณเขียนจำเป็นต้องใช้ฟังก์ชันวันที่บางรูปแบบที่ส่งคืนวันที่และเวลาปัจจุบัน วันที่เป็นส่วนหนึ่งของชีวิตประจำวันมากจนทำงานกับพวกเขาได้ง่ายโดยไม่ต้องคิด Pascal ยังมีเครื่องมือที่มีประสิทธิภาพสำหรับการคำนวณวันที่ซึ่งทำให้การจัดการวันที่เป็นเรื่องง่าย อย่างไรก็ตามชื่อจริงและการทำงานของฟังก์ชันเหล่านี้จะแตกต่างกันสำหรับคอมไพเลอร์ที่แตกต่างกัน

รับวันที่และเวลาปัจจุบัน

ฟังก์ชัน TimeToString ของ Pascal ให้เวลาปัจจุบันในรูปแบบคั่นด้วยเครื่องหมายโคลอน (:) ตัวอย่างต่อไปนี้แสดงวิธีรับเวลาปัจจุบัน -

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 เป็น timestamp

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):;

ส่งกลับการแสดงสตริงของเวลา

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