Olá pessoal nesta Quick irei mostrar como utilizar as funções DaysInAMonth, DaysBetween, DayOf entre outras.

 

 

Obtendo a diferença de dias entre duas datas usando a função DaysBetween()

 

                Em algumas situações nós precisamos saber a diferença de dias entre duas datas. Para isso podemos usar a função DaysBetween(), presente na unit DateUtil. Esta função recebe dois objetos TDateTime e retorna um inteiro contendo a quantidade de dias entre as duas datas.

 

                Observe, no entanto, que a função DaysBetween() retorna apenas a quantidade de dias completos, ou seja, as horas, minutos, segundos e milisegundos são incluídos no cálculo dos dias. Se faltar apenas um segundo para completar um dia, tal dia não será incluído na contagem. Veja um exemplo de seu uso:

 

procedure TForm1.Button1Click(Sender: TObject);

var

data1, data2: TDateTime;

quant_dias: Integer;

begin

// vamos criar as duas datas, observe que as horas

// também foram definidas

// primeira data: 12/01/2010 às 09:10:15

data1 := EncodeDateTime(2010, 1, 12, 9, 10, 15, 0);

// segunda data: 15/01/2010 às 19:10:15

data2 := EncodeDateTime(2010, 1, 15, 19, 10, 15, 0);

// vamos obter a quantidade de dias entre as duas datas

quant_dias := DaysBetween(data1, data2);

// mostra o resultado

ShowMessage('A diferença de dias é: ' + IntToStr(quant_dias));

end;

 

Como obter a quantidade de dias para um determinado mês e ano

 

                Em algumas situações precisamos saber a quantidade exata de dias que um determinado mês possui. Para isso, podemos usar a função DaysInAMonth(), presente na unit DateUtils. Esta função recebe dois inteiros representando o ano e o mês e retorna um valor inteiro que representa a quantidade de dias para tal mês. Veja um exemplo:

 

procedure TForm1.Button1Click(Sender: TObject);

var

mes, ano, dias_mes: Integer;

begin

mes := 2;

ano := 2010;

// vamos obter a quantidade de dias para o mês de

// fevereiro de 2010

dias_mes := DaysInAMonth(ano, mes);

// exibe o resultado

ShowMessage('O mês informado possui ' + IntToStr(dias_mes) +

' dias');

end;

 

                Este trecho de código nos informará que o mês de fevereiro de 2010 possui 28 dias. Note que os argumentos para a função DaysInAMonth() devem estar dentro da faixa permitida. Para o ano, os valores devem estar entre 1 e 9999 (inclusive) e para o mês os valores devem estar entre 1 e 12 (inclusive).

 

Obtendo o dia do mês para uma determinada data

 

                Em algumas situações precisamos extrair apenas o dia do mês de uma determinada data. Para isso podemos usar as funções DayOfTheMonth() e DayOf(), ambas contidas na unit DateUtils.

                Estas funções retornam um valor inteiro na faixa de 1 a 31. Veja, por exemplo, como obter o dia do mês da data atual:

procedure TForm1.Button1Click(Sender: TObject);

var

hoje: TDateTime;

dia_mes: integer;

begin

// não esqueça de incluir DateUtils no uses

// vamos receber a data de hoje

hoje := Now;

// vamos obter o dia do mês

dia_mes := DayOf(hoje);

// vamos exibir o resultado

ShowMessage('O dia do mês é: ' + IntToStr(dia_mes));

end;

                É importante notar que ambas as funções DayOfTheMonth() e DayOf() esperam um valor do

tipo TDateTime representando a data cujo mês queremos extrair.       

 

 

Vou ficando por aqui, na próxima continuaremos trabalhando com Data no Delphi

 

Um abraço

 

Rubens Antunes

Leia todos artigos da série