Delphi - SUMA DE FECHAS

 
Vista:

SUMA DE FECHAS

Publicado por Rodolfo (3 intervenciones) el 23/04/2003 19:51:10
Tengo un problema con una rutina para sumar variables tipo DateTime

Var
h1,h2,h3:TDateTime;
...
h1:=StrToDateTime(Edit1.Text);
h2:=StrToDateTime(Edit2.Text);
h3:=h1+h2;

Mi problema esta en que cuando pongo digamos:
13:00 + 20:00 deberia salir 33:00
Pero me sale como si operara de la forma siguiente 9:00 am (33-24), supongo que es las nueve horas del dia sguiente.

Como puedo hacer para que salga 33:00
Mi idea es acumular horas trabajadas en un determinado periodo.

Muchas Gracias por su ayuda.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SUMA DE FECHAS

Publicado por Ernesto De Spirito (706 intervenciones) el 23/04/2003 20:51:01
Efectivamente, la suma de 13 horas (~0,541667) más 20 horas (~0,833333) es 1 día y 9 horas (1.375), y si sólo tomas las horas (la parte decimal), te quedan 9 horas. Si quieres convertir el valor de h3 a un string como planeas, te sugiero extraer "manualmente" las horas y minutos:

var
h1,h2,h3:TDateTime;
horas, minutos: integer;
........
begin
.......
h1:=StrToDateTime(Edit1.Text);
h2:=StrToDateTime(Edit2.Text);
h3:=h1+h2;
horas := Trunc(h3*24);
minutos := Round(h3*1440) - horas*60;
ShowMessage(Format('%.2d:%2.2d', [horas, minutos]));
.......
end;

Espero que te sirva.

Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar