Pascal - Data e hora
A maioria dos softwares que você escreve precisa implementar alguma forma de funções de data que retornem a data e a hora atuais. As datas são tão parte da vida cotidiana que se torna fácil trabalhar com elas sem pensar. Pascal também fornece ferramentas poderosas para aritmética de datas que torna a manipulação de datas fácil. No entanto, o nome real e o funcionamento dessas funções são diferentes para diferentes compiladores.
Obtendo a data e hora atuais
A função TimeToString de Pascal fornece a hora atual em um formato delimitado por dois pontos (:). O exemplo a seguir mostra como obter a hora atual -
program TimeDemo;
uses sysutils;
begin
writeln ('Current time : ',TimeToStr(Time));
end.
Quando o código acima foi compilado e executado, ele produz o seguinte resultado -
Current time : 18:33:08
o Date função retorna a data atual em TDateTimeformato. O TDateTime é um valor duplo, que precisa de alguma decodificação e formatação. O programa a seguir demonstra como usá-lo em seu programa para exibir a data atual -
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.
Quando o código acima foi compilado e executado, ele produz o seguinte resultado -
Date: 4.111300000000000E+004
Today is (DD/MM/YY):23/7/2012
A função Now retorna a data e hora atuais -
Program DatenTimeDemo;
uses sysutils;
begin
writeln ('Date and Time at the time of writing : ',DateTimeToStr(Now));
end.
Quando o código acima foi compilado e executado, ele produz o seguinte resultado -
Date and Time at the time of writing : 23/7/2012 18:51:
O Free Pascal fornece uma estrutura simples de registro de data e hora chamada TTimeStamp, que tem o seguinte formato -
type TTimeStamp = record
Time: Integer;
Date: Integer;
end;
Várias funções de data e hora
O Pascal gratuito fornece as seguintes funções de data e hora -
Sr. Não. | Nome e descrição da função |
---|---|
1 | function DateTimeToFileDate(DateTime: TDateTime):LongInt; Converte o tipo DateTime em data do arquivo. |
2 | function DateTimeToStr( DateTime: TDateTime):; Constrói uma representação de string de DateTime |
3 | function DateTimeToStr(DateTime: TDateTime; const FormatSettings: TFormatSettings):; Constrói uma representação de string de DateTime |
4 | procedure DateTimeToString(out Result: ;const FormatStr: ;const DateTime: TDateTime); Constrói uma representação de string de DateTime |
5 | procedure DateTimeToString(out Result: ; const FormatStr: ; const DateTime: TDateTime; const FormatSettings: TFormatSettings); Constrói uma representação de string de DateTime |
6 | procedure DateTimeToSystemTime(DateTime: TDateTime; out SystemTime: TSystemTime); Converte DateTime em hora do sistema |
7 | function DateTimeToTimeStamp( DateTime: TDateTime):TTimeStamp;Converte DateTime em timestamp |
8 | function DateToStr(Date: TDateTime):; Constrói uma representação de string de data |
9 | function DateToStr(Date: TDateTime; const FormatSettings: TFormatSettings):; Constrói uma representação de string de data |
10 | function Date: TDateTime; Obtém a data atual |
11 | function DayOfWeek(DateTime: TDateTime):Integer; Recebe o dia da semana |
12 | procedure DecodeDate(Date: TDateTime; out Year: Word; out Month: Word; out Day: Word); Decodifica DateTime para ano, mês e dia |
13 | procedure DecodeTime(Time: TDateTime; out Hour: Word; out Minute: Word; out Second: Word; out MilliSecond: Word); Decodifica DateTime em horas, minutos e segundos |
14 | function EncodeDate(Year: Word; Month: Word; Day: Word):TDateTime; Codifica ano, dia e mês para DateTime |
15 | function EncodeTime(Hour: Word; Minute: Word; Second: Word; MilliSecond: Word):TDateTime; Codifica horas, minutos e segundos para DateTime |
16 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime):; Retorna a representação de string de DateTime |
17 | function FormatDateTime(const FormatStr: ; DateTime: TDateTime; const FormatSettings: TFormatSettings):; Retorna a representação de string de DateTime |
18 | function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer = 1):TDateTime; Adiciona 1 ao mês |
19 | function IsLeapYear(Year: Word):Boolean; Determina se o ano é bissexto |
20 | function MSecsToTimeStamp(MSecs: Comp):TTimeStamp; Converte o número de milissegundos em carimbo de data / hora |
21 | function Now: TDateTime; Obtém a data e hora atuais |
22 | function StrToDateTime(const S:):TDateTime; Converte string em DateTime |
23 | function StrToDateTime(const s: ShortString; const FormatSettings: TFormatSettings):TDateTime; Converte string em DateTime |
24 | function StrToDateTime(const s: AnsiString; const FormatSettings: TFormatSettings):TDateTime; Converte string em DateTime |
25 | function StrToDate(const S: ShortString):TDateTime; Converte string para data |
26 | function StrToDate(const S: Ansistring):TDateTime; Converte string para data |
27 | function StrToDate(const S: ShortString; separator: Char):TDateTime; Converte string para data |
28 | function StrToDate(const S: AnsiString; separator: Char):TDateTime; Converte string para data |
29 | function StrToDate(const S: ShortString; const useformat: ; separator: Char):TDateTime; Converte string para data |
30 | function StrToDate(const S: AnsiString; const useformat: ; separator: Char):TDateTime; Converte string para data |
31 | function StrToDate(const S: PChar; Len: Integer; const useformat: ; separator: Char = #0):TDateTime; Converte string para data |
32 | function StrToTime(const S: Shortstring):TDateTime; Converte string em tempo |
33 | function StrToTime(const S: Ansistring):TDateTime; Converte string em tempo |
34 | function StrToTime(const S: ShortString; separator: Char):TDateTime; Converte string em tempo |
35 | function StrToTime(const S: AnsiString; separator: Char):TDateTime; Converte string em tempo |
36 | function StrToTime(const S: ; FormatSettings: TFormatSettings):TDateTime; Converte string em tempo |
37 | function StrToTime(const S: PChar; Len: Integer; separator: Char = #0):TDateTime; Converte string em tempo |
38 | function SystemTimeToDateTime(const SystemTime: TSystemTime):TDateTime; Converte a hora do sistema em data e hora |
39 | function TimeStampToDateTime(const TimeStamp: TTimeStamp):TDateTime; Converte carimbo de hora em DateTime |
40 | function TimeStampToMSecs(const TimeStamp: TTimeStamp):comp; Converte o carimbo de data / hora em um número de milissegundos |
41 | function TimeToStr(Time: TDateTime):; Retorna a representação de string de tempo |
42 | function TimeToStr(Time: TDateTime; const FormatSettings: TFormatSettings):; Retorna a representação de string de tempo |
43 | function Time: TDateTime; Obtenha a hora atual |
O exemplo a seguir ilustra o uso de algumas das funções acima -
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.
Quando o código acima foi compilado e executado, ele produziu o seguinte 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