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