Quick Tips: Data no Delphi - Parte V - Como verificar se um determinado ano é bissexto

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Nesta dica continuaremos mostrando funções de data no Delphi: Como verificar se um determinado ano é bissexto.

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

Leia todos artigos da série

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?