Fórum Somar Horas... Como faço #173859

08/08/2003

0

E ai pessoal

Estou tendo o seguinte problema: tenho um campo do tipo Time (paradox) em uma tabela. Existem varios registros nesta tabela, eu gostaria de saber como faço para somar este tipo de campo( eu ja tentei criar uma variavel do tipo TTime, mas não deu certo), por exemplo
1º registro = 01:25
2º registro = 02:15
3º registro = 00:30

o total seria = 04:10, mas não dá . COMO EU FAÇO!!!!!!!!!!!

Antecipadamente Obrigado! :wink:


Anarquistaoi

Anarquistaoi

Responder

Posts

08/08/2003

Tecsoftware

Faça o Seguinte:

Var
TotalHora: TTime;
begin
Tabela.First;
While Not Tabela.EoF Do
Begin
TotalHora:= TotalHora + Tabela.fieldbyname(´campo_hora´).AsTime;
Tabela.Next;
End;
End;


Responder

Gostei + 0

08/08/2003

Ezdala

tente fazer o seguinte: O campo TTime só suporte no máximo 23h59m, caso seu acumulo de horas seja maior que isso vai dar errado, então:
Var
Hora,Min:Integer;
TotHora, TotMin:Integer;
Junta:String;
begin
Hora := 0; Min := 0;
TotHora := 0; TotMin := 0;
while not tabela.eof do
begin
// separa a hora e os minutos...
Hora := StrToInt(Copy(FormatDateTime(´hh:mm´,Tablehora.asTime),1,pos(´:´, FormatDateTime(´hh:mm´,Tablehora.asTime)-1);
Min := StrToInt(Copy(FormatDateTime(´hh:mm´,Tablehora.asTime),pos(´:´, FormatDateTime(´hh:mm´,Tablehora.asTime)+1),2);
// depois faça o seguinte:
TotHora := TotHora + Hora;
TotMin := TotMin + Min;
Table.next;
end;
TotHora := TotHora + (TotMin div 60);
TotMin := (TotMin mod 60);
Junta := IntToStr(TotHora) + ´:´ + IntToStr(TotMin);
end;


Responder

Gostei + 0

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

Aceitar