Somar Horas... Como faço
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:
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
Curtidas 0
Respostas
Tecsoftware
08/08/2003
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;
Var
TotalHora: TTime;
begin
Tabela.First;
While Not Tabela.EoF Do
Begin
TotalHora:= TotalHora + Tabela.fieldbyname(´campo_hora´).AsTime;
Tabela.Next;
End;
End;
GOSTEI 0
Ezdala
08/08/2003
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;
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;
GOSTEI 0