Funções de Data e Hora
O Object Pascal define na unit System,
o tipo de dado TDateTime, utilizado por procedures e funções
para a manipulação de datas e horas. O tipo TDateTime é,
na verdade, o tipo predefinido Double. Sendo esse um tipo de ponto flutuante,
possui duas partes: a parte inteira e a parte decimal. A parte inteira é
usada para armazenar o número de dias desde a data 30/12/1899.
As horas (isto é, horas, minutos, segundos e milissegundos) são
armazenados como frações de um dia na parte decimal. Os números
negativos são usados para representar datas antes de 1899.
Considerando que a unidade no tipo TDateTime é o dia, veja abaixo exemplos
de valores com as datas e horas correspondentes:
Valor | Data | Hora |
0 | 30/12/1899 | 0:00 h |
2.75 | 01/01/1900 | 18:00 h |
-1.25 | 29/12/1899 | 6:00 h |
35065 | 01/01/1996 | 0:00 h |
Exemplos de Operações com Valores de Datas e Horas
const
UmaHora = 1/24;
var
Data1,Data2 : TDateTime;
NumDias : Integer;
begin
Data1 := Data1 + 1; // um
dia a mais
Data1 := Data1 + UmaHora; //
uma hora a mais
NumDias := Data1 - Data2; //
número de dias entre as datas
Rotinas Predefinidas do Delphi
ROTINA | DESCRIÇÃO |
Date | Retorna a data corrente. |
DateOfWeek | Retorna o dia da semana correspondente a um valor TDateTime. |
EncodeDate | Transforma valores de ano, mês e dia em um valor TDateTime. |
EncodeTime | Transforma valores de hora, minuto, segundo e milissegundo em um valor TDateTime. |
FormatDateTime | Formata data e hora usando um formato especificado. |
Now | Retorna a data e hora correntes. |
Time | Retorna a hora corrente. |
FUNÇÕES DE CONVERSÃO DE DATA E HORA
Função StrToTime
Converte Hora:String para valor do tipo Hora:TDateTime.
Exemplo:
// Mostra uma mensagem de acordo com a hora definida
na caixa de edição
procedure TForm1.Button1Click(Sender: TObject);
var
Hora: TDateTime;
begin
Hora := StrToTime(Edit1.Text); //Hora
deve estar no formato HH:MM:SS
if Hora< 0.50 then
ShowMessage('Bom Dia')
else
ShowMessage('Boa Tarde');
end;
Função TimeToStr
Converte Hora:TDateTime para Hora:String.
Exemplo:
// Mostra a hora do sistema no caption do formulário
a cada evento do Timer.
procedure TForm1.Timer1Timer(Sender: TObject);
var
DataHora : TDateTime;
str : string;
begin
DataHora := Time; // armazena
a data e hora corrente
str := TimeToStr(DataHora); //
converte a hora para uma string
Caption := str; // mostra a hora
no caption do formulário
{ Nota: Isto
poderia ter sido feito com:
Caption
:= TimeToStr(Time); }
end;
Função DateTimeToStr
Converte valor do tipo TDateTime para Data e Hora:String.
Exemplo:
//
mostra data e hora do sistema no label
procedure TForm1.Button1Click(Sender:
TObject);
begin
Label1.Caption := DateTimeToStr(Now);
// Now - Retorna Data e Hora do sistema
end;
Função StrToDateTime
Converte uma DataHora:String para DataHora:TDateTime.
A String deve estar no formato:
DD/MM/AA HH:MM:SS.
Exemplos:
23/05/2003
8:45:40 ou
4/12/2003
19:30:42 ou
12/10/2000
7:50 PM
Exemplo:
//
mostra data e hora digitados no caption do formulário
procedure
TForm1.Button1Click(Sender: TObject);
var
DataHora: TDateTime;
begin
DataHora := StrToDateTime(Edit1.Text);
Caption := DateTimeToStr(DataHora); //
Mostra data e hora no caption do formulário
end;
Função DateToStr
Converte valor do tipo Data:TDateTime para Data:String.
Exemplo:
//
mostra data do sistema no label
procedure TForm1.Button1Click(Sender:
TObject);
begin
Label1.Caption := DateToStr(Now);
// Now - Retorna Data e Hora do sistema
end;
Função StrToDate
Converte Data:String para um valor do tipo Data:TDateTime.
Exemplo:
///
Mostra a data do sistema no label.
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := 'Hoje é
' + DateToStr(Date); // Date - Data do sistema
end;