Pascal - Date et heure

La plupart des logiciels que vous écrivez ont besoin d'implémenter une forme de fonctions de date renvoyant la date et l'heure actuelles. Les dates font tellement partie de la vie quotidienne qu'il devient facile de travailler avec elles sans réfléchir. Pascal fournit également des outils puissants pour l'arithmétique des dates qui facilitent la manipulation des dates. Cependant, le nom et le fonctionnement réels de ces fonctions sont différents pour différents compilateurs.

Obtenir la date et l'heure actuelles

La fonction TimeToString de Pascal vous donne l'heure actuelle sous une forme délimitée par deux points (:). L'exemple suivant montre comment obtenir l'heure actuelle -

program TimeDemo;
uses sysutils;

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

Lorsque le code ci-dessus a été compilé et exécuté, il produit le résultat suivant -

Current time : 18:33:08

le Date La fonction renvoie la date actuelle dans TDateTimeformat. Le TDateTime est une valeur double, qui nécessite un certain décodage et formatage. Le programme suivant montre comment l'utiliser dans votre programme pour afficher la date actuelle -

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.

Lorsque le code ci-dessus a été compilé et exécuté, il produit le résultat suivant -

Date: 4.111300000000000E+004
Today is (DD/MM/YY):23/7/2012

La fonction Now renvoie la date et l'heure actuelles -

Program DatenTimeDemo;
uses sysutils;
begin
   writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
end.

Lorsque le code ci-dessus a été compilé et exécuté, il produit le résultat suivant -

Date and Time at the time of writing : 23/7/2012 18:51:

Free Pascal fournit une structure d'horodatage simple nommée TTimeStamp, qui a le format suivant -

type TTimeStamp = record
   Time: Integer;
   Date: Integer;
end;

Diverses fonctions de date et d'heure

Free Pascal fournit les fonctions de date et d'heure suivantes -

N ° Sr. Nom de la fonction et description
1

function DateTimeToFileDate(DateTime: TDateTime):LongInt;

Convertit le type DateTime en date du fichier.

2

function DateTimeToStr( DateTime: TDateTime):;

Construit une représentation sous forme de chaîne de DateTime

3

function DateTimeToStr(DateTime: TDateTime; const FormatSettings: TFormatSettings):;

Construit une représentation sous forme de chaîne de DateTime

4

procedure DateTimeToString(out Result: ;const FormatStr: ;const DateTime: TDateTime);

Construit une représentation sous forme de chaîne de DateTime

5

procedure DateTimeToString(out Result: ; const FormatStr: ; const DateTime: TDateTime; const FormatSettings: TFormatSettings);

Construit une représentation sous forme de chaîne de DateTime

6

procedure DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime);

Convertit DateTime en heure système

sept

function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp;Convertit DateTime en horodatage

8

function DateToStr(Date: TDateTime):;

Construit une représentation sous forme de chaîne de date

9

function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings):;

Construit une représentation sous forme de chaîne de date

dix

function Date: TDateTime;

Obtient la date actuelle

11

function DayOfWeek(DateTime: TDateTime):Integer;

Obtient le jour de la semaine

12

procedure DecodeDate(Date: TDateTime; out Year: Word; out Month: Word; out Day: Word);

Décode DateTime en année mois et jour

13

procedure DecodeTime(Time: TDateTime; out Hour: Word; out Minute: Word; out Second: Word; out MilliSecond: Word);

Décode DateTime en heures, minutes et secondes

14

function EncodeDate(Year: Word; Month: Word; Day: Word):TDateTime;

Encode l'année, le jour et le mois en DateTime

15

function EncodeTime(Hour: Word; Minute: Word; Second: Word; MilliSecond: Word):TDateTime;

Encode les heures, les minutes et les secondes en DateTime

16

function FormatDateTime(const FormatStr: ; DateTime: TDateTime):;

Renvoie une représentation sous forme de chaîne de DateTime

17

function FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):;

Renvoie une représentation sous forme de chaîne de DateTime

18

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

Ajoute 1 au mois

19

function IsLeapYear(Year: Word):Boolean;

Détermine si l'année est bissextile

20

function MSecsToTimeStamp(MSecs: Comp):TTimeStamp;

Convertit le nombre de millisecondes en horodatage

21

function Now: TDateTime;

Obtient la date et l'heure actuelles

22

function StrToDateTime(const S:):TDateTime;

Convertit la chaîne en DateTime

23

function StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime;

Convertit la chaîne en DateTime

24

function StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime;

Convertit la chaîne en DateTime

25

function StrToDate(const S: ShortString):TDateTime;

Convertit la chaîne en date

26

function StrToDate(const S: Ansistring):TDateTime;

Convertit la chaîne en date

27

function StrToDate(const S: ShortString; separator: Char):TDateTime;

Convertit la chaîne en date

28

function StrToDate(const S: AnsiString; separator: Char):TDateTime;

Convertit la chaîne en date

29

function StrToDate(const S: ShortString; const useformat: ; separator: Char):TDateTime;

Convertit la chaîne en date

30

function StrToDate(const S: AnsiString; const useformat: ; separator: Char):TDateTime;

Convertit la chaîne en date

31

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

Convertit la chaîne en date

32

function StrToTime(const S: Shortstring):TDateTime;

Convertit la chaîne en temps

33

function StrToTime(const S: Ansistring):TDateTime;

Convertit la chaîne en temps

34

function StrToTime(const S: ShortString; separator: Char):TDateTime;

Convertit la chaîne en temps

35

function StrToTime(const S: AnsiString; separator: Char):TDateTime;

Convertit la chaîne en temps

36

function StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime;

Convertit la chaîne en temps

37

function StrToTime(const S: PChar; Len: Integer; separator: Char = #0):TDateTime;

Convertit la chaîne en temps

38

function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime;

Convertit l'heure système en date / heure

39

function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime;

Convertit l'horodatage en DateTime

40

function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp;

Convertit l'horodatage en nombre de millisecondes

41

function TimeToStr(Time: TDateTime):;

Renvoie une représentation sous forme de chaîne de Time

42

function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):;

Renvoie une représentation sous forme de chaîne de Time

43

function Time: TDateTime;

Obtenir l'heure actuelle

L'exemple suivant illustre l'utilisation de certaines des fonctions ci-dessus -

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.

Lorsque le code ci-dessus a été compilé et exécuté, il a produit le résultat suivant:

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