Código
Data: Monday, November 20 @ 14:26:53
Tópico Dicas
O principal uso desta função é o de apresentar em relatórios ou tela, a totalização de horas com resultado superior a 23:59:59, que não é contemplada pelas funções de conversão padrão. Assim, podemos apresentar um somatório de horas como por ex. 125:38:15.
function FullTimeToStr(SUMTime: TDateTime): string;
var
StrHor,
StrMin :string;
TotHor :double;
begin
TotHor := SUMTime *24;
StrHor := FormatFloat('##0:', Int(TotHor));
StrMin := FormatDateTime('nn:ss', Frac(TotHor)/24);
Result := StrHor +StrMin;
end;Explicando:
Chama-se a função passando para o parâmetro SUMTime o total de horas que se obteve na consulta ou componente. Multiplicamos por 24, para transformar os dias (parte inteira) em horas já somando com a hora cheia contida na parte fracionária.
TotHor := SUMTime *24;
Em seguida, Formatamos a hora "cheia", utilizando a parte inteira da variável. A parte fracionária estará contendo os minutos e segundos.
StrHor := FormatFloat('##0:', Int(TotHor));
Dividimos a parte fracionária (atual) por 24, para obtermos novamente o formato time. Podemos então utilizar normalmente a função de formatação para obtermos a fração de tempo restante:
StrMin := FormatDateTime('nn:ss', Frac(TotHor)/24);
O resultado da função é a concatenação dos resultados:
Result := StrHor +StrMin;
***********
Espero que possa ter ajudado
marciosantos14@hotamail.com
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009