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:
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
Curtir tópico
+ 0
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;
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;
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
Clique aqui para fazer login e interagir na Comunidade :)