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;