sábado, 17 de outubro de 2009

Como retornar quantidade de dias meses e anos entre duas datas

Ola

Hoje de manhã procurei uma função no Delphi que fizesse o que eu queria e não achei nada , ai fui obrigado a fazer . Bom, pode ser util pra mais gente . Esta procedure retorna a diferença entre 2 datas em dias, meses e anos .


Procedure EntreDatas(DataFinal,DataInicial : TDate ; var Anos,Meses,Dias : Integer) ;
//
// Retorna a diferença em Dias,Meses e Anos entre 2 datas
//
Function Calcula(Periodo : Integer) : Integer ;
var
intCont : Integer ;
begin
intCont := 0 ;
Repeat
Inc(intCont) ;
DataFinal := IncMonth(DataFinal,Periodo * -1) ;
Until DataFinal < DataInicial ;
DataFinal := IncMonth(DataFinal,Periodo) ;
Inc(intCont,-1) ;
Result := intCont ;
End ;
begin
if DataFinal <= DataInicial then
begin
Anos := 0 ;
Meses := 0 ;
Dias := 0 ;
exit ;
end;
Anos := Calcula(12) ;
Meses := Calcula(1) ;
Dias := Round(DataFinal - DataInicial) ;
end;

Nenhum comentário:

Postar um comentário