Quick Tips: Data no Delphi - Parte IV

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 mostraremos como utilizar as funções DaysInAMonth, DaysBetween, DayOf entre outras.

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

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