Fórum Somatório de Datas #345877
12/09/2007
0
Como faço pra fazer uma somátorio de datas de modo que fique acumulativo? por exemplo: eu crio 5 variáveis do tipo TDateTime da seguinte maneira:
var totalG, total1, h_entra, h_sai, total2, h_entra2, h_sai2:TDateTime;
begin
h_entra:=StrToTime(edithoraentra.Text);
h_sai:=StrToTime(edithorasai.Text);
total1:=h_sai-h_entra;
h_entra2:=StrToTime(edithoraentra.Text);
h_sai2:=StrToTime(edithorasai.Text);
total2:=h_sai-h_entra;
totalG:=total1+ total2;
label7.Caption:=´Tota de Horas: ´+TimeToStr(totalG);
end;
Dependendo dos valores das horas o somátorio nao fica acumulativo, ou seja, se eu colocar intervalos grandes de hora o somatorio na acumula. supondo que eu digitei h_entra1:=00:00 e h_sa1:=23:00 e h_entra2:=15:00 e h_sai:=20:00, o somatorio deveria ser 28:00... mas nao está acumulando, ou seja, o resultado é 04:00. Como faço pra que esse somatorio seja acumulativo e d~e o resultado 28:00?
Agradeço a atenção.
var totalG, total1, h_entra, h_sai, total2, h_entra2, h_sai2:TDateTime;
begin
h_entra:=StrToTime(edithoraentra.Text);
h_sai:=StrToTime(edithorasai.Text);
total1:=h_sai-h_entra;
h_entra2:=StrToTime(edithoraentra.Text);
h_sai2:=StrToTime(edithorasai.Text);
total2:=h_sai-h_entra;
totalG:=total1+ total2;
label7.Caption:=´Tota de Horas: ´+TimeToStr(totalG);
end;
Dependendo dos valores das horas o somátorio nao fica acumulativo, ou seja, se eu colocar intervalos grandes de hora o somatorio na acumula. supondo que eu digitei h_entra1:=00:00 e h_sa1:=23:00 e h_entra2:=15:00 e h_sai:=20:00, o somatorio deveria ser 28:00... mas nao está acumulando, ou seja, o resultado é 04:00. Como faço pra que esse somatorio seja acumulativo e d~e o resultado 28:00?
Agradeço a atenção.
Douglas
Curtir tópico
+ 0
Responder
Posts
12/09/2007
Douglas
sobe
Responder
Gostei + 0
12/09/2007
Massuda
O TDateTime é um valor em ponto flutuante que representa uma quantidade de dias.
No seu caso, basta multiplicar o somatório TDateTime por 24 para ter o total de horas......note que o resultado 1.5 não significa 1 hora e 5 minutos, mas sim 1 hora e 5 décimos.
No seu caso, basta multiplicar o somatório TDateTime por 24 para ter o total de horas...
label7.Caption:=´Total de Horas: ´ + FloatToStr(totalG * 24);
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)