Olá pessoal nesta Quick irei continuar mostrando funções de data no Delphi
Como verificar se um determinado ano é bissexto
Em algumas situações precisamos verificar se um determinado ano é bissexto. Em Delphi isso pode ser feito com o auxílio da função IsLeapYear(), disponível na unit SysUtils. Esta função aceita um valor inteiro representando o ano que queremos testar e retorna um valor true se o ano for bissexto e false em caso contrário.
Veja um trecho de código no qual testamos se o ano 2008 é bissexto:
procedure TForm1.Button1Click(Sender: TObject);
var
ano: integer;
begin
// define o ano
ano := 2008;
// vamos verificar se este ano é bissexto
if IsLeapYear(ano) then
ShowMessage('O ano ' + IntToStr(ano) + ' é bissexto')
else
ShowMessage('O ano ' + IntToStr(ano) + ' NÃO é bissexto');
end;
Obtendo a data atual (sem as horas)
Em algumas situações precisamos obter a data atual (apenas a data, desconsiderando as horas) do sistema. Em Delphi isso pode ser feito com o auxílio da função Date(), presente na unit SysUtils. Esta função não requer nenhum argumento e retorna a data atual como um TDateTime. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
data: TDateTime;
begin
// vamos obter a data atual
data := Date();
// podemos também usar a função Today()
//data := Today();
// vamos exibir o resultado
ShowMessage(DateTimeToStr(data));
end;
Note que podemos também obter a data atual (sem as horas) usando a função Today(), da unit DateUtils.
Obtendo a data e hora atual
Em algumas situações precisamos obter a data e hora atual do sistema. Em Delphi isso pode ser feito com o auxílio da função Now(), presente na unit SysUtils. Este função não requer nenhum argumento e retorna a data e hora atual como um TDateTime. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
data: TDateTime;
begin
// vamos obter a data e hora atual
data := Now();
// vamos exibir o resultado
ShowMessage(DateTimeToStr(data));
end;
Criando uma data e hora em Delphi usando a função EncodeDateTime()
Em algumas situações precisamos contruir uma determinada data e hora e retornar um
TDateTime. Isso pode ser feito com o auxílio da função EncodeDateTime(). Esta função requer valores inteiros representando o ano, mês, dia, horas, minutos, segundos e milisegundos.
Veja um exemplo no qual construímos a data 22/10/2009:
procedure TForm1.Button1Click(Sender: TObject);
var
data_hora: TDateTime;
begin
// não esqueça de incluir DateUtils no uses
// vamos construir a data 22/10/2009
data_hora := EncodeDateTime(2009, 10, 22, 0, 0, 0, 0);
// vamos exibir o resultado
ShowMessage('A data é: ' + DateTimeToStr(data_hora));
end;
Note que deixamos os valores de horas, minutos, segundos e milisegundos como 0. Experimente construir a mesma data fornecendo também os valores de horas, minutos, segundos e milisegundos. Há, contudo, alguns cuidados a serem tomados. Os valores fornecidos para a função EncodeDateTime() devem obedecer as regras de limites mínimos e máximos:
a) O valor do ano deve estar entre 1 e 9999;
b) Os valores de meses devem estar entre 1 e 12 (incluindo);
c) Os valores válidos para os dias variam de 1 até 28, 29, 30 ou 31, dependendo do valor do
mês. Por exemplo, os valores possíveis para o mês 2 (fevereiro) são de 1 até 28 ou até 29,
dependendo ou não se o valor do ano especificado for um ano bissexto;
d) Valores para a hora devem estar entre 0 e 24. Se a hora for definida como 24, os valores dos
minutos, segundos e milisegundos deverão ser 0, e o TDateTime resultante representará a
meia-noite no final do dia especificado e o início do próximo dia;
d) Os valores dos minutos devem variar de 0 até 59;
e) Os valores de segundos devem variar de 0 até 59;
f) Os valores de milisegundos devem variar de 0 até 999.
Se os valores informados para a função EncodeDateTime() estiverem fora destas faixas, uma
exceção EConvertError será lançada. Esta exceção ocorrerá em tempo de execução.
Vou ficando por aqui, na próxima continuaremos trabalhando com Data no Delphi
Um abraço
Rubens Antunes