Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hugo Slepicka

Diferença Entre Datas

Recommended Posts

Ta ai galera uma função que eu uso para calcular diferença entre datas... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Espero que ajude...

 

 

Function Tempo(Inicio, Fim:TDateTime) : String;Type  Data = Record  Ano : Word;  Mes : Word;  Dia : Word;End;Const  Qdm:String = '312831303130313130313031'; // Qtde dia no mesVar  Dth : Data; // Data de inicio  Dtn : Data; // Data de fim...  anos, meses, dias, nrd : Shortint; // Usadas para calculo de tempo  msg : String;begin  DecodeDate(Fim,Dth.Ano,Dth.Mes,Dth.Dia);  DecodeDate(Inicio,Dtn.Ano,Dtn.Mes,Dtn.Dia);  anos := Dth.Ano - Dtn.Ano;  meses := Dth.Mes - Dtn.Mes;  if meses < 0 then  begin	Dec(anos);	meses := meses+12;  end;  dias := Dth.Dia - Dtn.Dia;  if dias < 0 then  begin	nrd := StrToInt(Copy(Qdm,(Dth.Mes-1)*2-1,2));	if ((Dth.Mes-1)=2) and ((Dth.Ano Div 4)=0) then	begin	  Inc(nrd);	end;	dias := dias+nrd;	meses := meses-1;  end;  If Anos > 0 then  Begin	If Anos > 1 then	Begin	  Msg := IntToStr(anos)+' Anos ';	End	Else	Begin	  Msg := IntToStr(anos)+' Ano ';	End;  End;  If meses > 0 then  Begin	If meses > 1 then	Begin	  Msg := Msg + IntToStr(meses)+' Meses ';	End	Else	Begin	  Msg := Msg + IntToStr(meses)+' Mes ';	End;  End;  If dias > 0 then  Begin	If dias > 1 then	Begin	  Msg := Msg + IntToStr(dias)+' Dias ';	End	Else	Begin	  Msg := Msg + IntToStr(dias)+' Dia ';	End;  End;  Result := Msg;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.