Buscar

Formatando horas além das 23:59h

Código

Formatando horas além das 23:59h
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

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Data e hora
Adicionada dia: 17/08/07
Por: Marcio Santos
Visualizada: 6897 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009