sexta-feira, 14 de outubro de 2016

DELPHI - Calcular diferença de data/hora - Calculate date/time difference

Essa função calcula a diferença entre duas data/hora e devolve o retorno em String pois o retorno vai ser sempre em horas.


Formato do retorno: HH:mm:ss


function CalcularDiferencaDtHrToString(DataFinal, DataInicial: TDate; HoraFinal, HoraInicial: TTime): String;
var
  DataHoraFinal, DataHoraInicial :TDateTime;
  Total, Horas :Real;
  H, M, S, SS :Word;
  NumDias :Integer;
begin
  DataHoraFinal := DataFinal + HoraFinal;
  DataHoraInicial := DataInicial + HoraInicial;

  if DataHoraInicial > DataHoraFinal then
    Total := DataHoraInicial - DataHoraFinal
  else
    Total := DataHoraFinal - DataHoraInicial;

  NumDias := Trunc(Total);
  Horas := Total - Trunc(Total);
  Decodetime(Horas, H, M, S, SS);
  H := H + 24 * Trunc(NumDias);

  Result := FormatFloat('#00',H) + ':' + FormatFloat('00',M)+':'+FormatFloat('00',S);
end;

Nenhum comentário:

Postar um comentário