Fórum somar Horas #258989

18/11/2004

0

Tenho na minha tabela um campo do tipo datetime, agora preciso que no meu relatório saia o valor acumulado de horas deste campo, já fiz somando e acumulando em uma váriável, mas quando chega a 24 horas ele zera o total e incrementa um dia na data, quero que saia como estiver, exemplo:
se ns soma for 01/01/04 12:35:24 quero que fique assim 31/12/03 36:35:24 ou melhor seria se saisse sem a data, mas na formatação do campo que ajeito isto.

Por favor é urgente, e desde já agradeço a atenção.

André Luis - Leitbom
Desenvolvedor


Andre Silveira

Andre Silveira

Responder

Posts

19/11/2004

Thomaz_prg

Colega, tenta fazer o seguinte:

var 
  i,h,m,s:integer;  
  t:string;

table.first;
i:=0;
while not table.eof do begin
  h:=StrToInt( FormatDateTime( ´hh´ ,  hora )  ) * 3600;
  m:=StrToInt( FormatDateTime( ´mm´ ,  hora )  ) * 60 ;
  s:=StrToInt( FormatDateTime( ´ss´ ,  hora )  );
  i:=i+h+m+s;
  table.next;
end;
h:=i div 3600;
i:=i mod 3600;
m:=i div 60;
s:=i mod 60;
t:=IntToStr(h)+´:´+IntToStr(m)+´:´+IntToStr(s)
showmessage(´ Total: ´+t );


É transformado tudo em segundos e depois é retornado para o formato hh:mm:ss


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar