Pascal - Fecha y hora

La mayoría de los softwares que escribe necesitan implementar algún tipo de funciones de fecha que devuelvan la fecha y hora actuales. Las fechas son una parte tan importante de la vida cotidiana que resulta fácil trabajar con ellas sin pensar. Pascal también proporciona herramientas poderosas para la aritmética de fechas que facilitan la manipulación de fechas. Sin embargo, el nombre real y el funcionamiento de estas funciones son diferentes para diferentes compiladores.

Obtener la fecha y hora actuales

La función TimeToString de Pascal le da la hora actual en forma delimitada por dos puntos (:). El siguiente ejemplo muestra cómo obtener la hora actual:

program TimeDemo;
uses sysutils;

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

Cuando se compiló y ejecutó el código anterior, produce el siguiente resultado:

Current time : 18:33:08

los Date función devuelve la fecha actual en TDateTimeformato. TDateTime es un valor doble, que necesita algo de decodificación y formato. El siguiente programa demuestra cómo usarlo en su programa para mostrar la fecha actual:

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.

Cuando se compiló y ejecutó el código anterior, produce el siguiente resultado:

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

La función Now devuelve la fecha y hora actuales:

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

Cuando se compiló y ejecutó el código anterior, produce el siguiente resultado:

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

Free Pascal proporciona una estructura de sello de tiempo simple llamada TTimeStamp, que tiene el siguiente formato:

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

Varias funciones de fecha y hora

Free Pascal proporciona las siguientes funciones de fecha y hora:

No Señor. Nombre y descripción de la función
1

function DateTimeToFileDate(DateTime: TDateTime):LongInt;

Convierte el tipo DateTime en fecha de archivo.

2

function DateTimeToStr( DateTime: TDateTime):;

Construye una representación de cadena de DateTime

3

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

Construye una representación de cadena de DateTime

4

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

Construye una representación de cadena de DateTime

5

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

Construye una representación de cadena de DateTime

6

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

Convierte DateTime a la hora del sistema

7

function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp;Convierte DateTime en marca de tiempo

8

function DateToStr(Date: TDateTime):;

Construye una representación en cadena de la fecha.

9

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

Construye una representación en cadena de la fecha.

10

function Date: TDateTime;

Obtiene la fecha actual

11

function DayOfWeek(DateTime: TDateTime):Integer;

Obtiene el día de la semana

12

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

Decodifica DateTime al año, mes y día

13

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

Decodifica DateTime en horas, minutos y segundos

14

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

Codifica año, día y mes hasta DateTime

15

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

Codifica horas, minutos y segundos en DateTime

dieciséis

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

Devuelve la representación de cadena de DateTime

17

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

Devuelve la representación de cadena de DateTime

18

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

Agrega 1 al mes

19

function IsLeapYear(Year: Word):Boolean;

Determina si el año es bisiesto

20

function MSecsToTimeStamp(MSecs: Comp):TTimeStamp;

Convierte la cantidad de milisegundos en marca de tiempo

21

function Now: TDateTime;

Obtiene la fecha y hora actuales

22

function StrToDateTime(const S:):TDateTime;

Convierte la cadena en DateTime

23

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

Convierte la cadena en DateTime

24

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

Convierte la cadena en DateTime

25

function StrToDate(const S: ShortString):TDateTime;

Convierte la cadena a la fecha

26

function StrToDate(const S: Ansistring):TDateTime;

Convierte la cadena a la fecha

27

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

Convierte la cadena a la fecha

28

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

Convierte la cadena a la fecha

29

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

Convierte la cadena a la fecha

30

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

Convierte la cadena a la fecha

31

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

Convierte la cadena a la fecha

32

function StrToTime(const S: Shortstring):TDateTime;

Convierte la cadena en tiempo

33

function StrToTime(const S: Ansistring):TDateTime;

Convierte la cadena en tiempo

34

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

Convierte la cadena en tiempo

35

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

Convierte la cadena en tiempo

36

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

Convierte la cadena en tiempo

37

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

Convierte la cadena en tiempo

38

function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime;

Convierte la hora del sistema en fecha y hora

39

function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime;

Convierte la marca de tiempo en DateTime

40

function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp;

Convierte la marca de tiempo en milisegundos

41

function TimeToStr(Time: TDateTime):;

Devuelve una representación de cadena de tiempo

42

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

Devuelve una representación de cadena de tiempo

43

function Time: TDateTime;

Obtener la hora actual

El siguiente ejemplo ilustra el uso de algunas de las funciones anteriores:

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.

Cuando se compiló y ejecutó el código anterior, produjo el siguiente resultado:

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