Diferença Entre Datas
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;
Discussão (1)
Carregando comentários...