La Web del Programador: Comunidad de Programadores
 
    Pregunta:  36240 - RESTAR Y SUMAR HORAS EN DELPHI
Autor:  CESAR GUISEPPE CARRION BELDI
Alguien me pudiera ayudar en esto
ejemplo :
10:51:45 + 1:00:00 = 11:51:45
y restando tambien les agradeceria un monton .

  Respuesta:  Rober
Tienes la funcion IncHour, donde le pasas la fecha y los minutos que quieres sumar, o restar si el segundo parametro se lo pasas en negativo.

Edit1.Text := DateTimeToStr(Now, 1); // Suma una hora a la hora actual
Edit1.Text := DateTimeToStr(Now, -1); // Resta una hora a la hora actual

Tambien esta la funcion IncYear, IncMonth......y alguna otra mas de este tipo

  Respuesta:  emanuel aguilar salas
hola cesar, con respecto a tu codigo para sumar o restar una hora tengo este...

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := TimeToStr(Time);
Edit2.Text := TimeToStr(Time + 24/24 + 60/1440);

// suma Edit2.Text := TimeToStr(Time + 24/24 + 60/1440);
// resta Edit2.Text := TimeToStr(Time + 24/24 - 60/1440);
end;
Lo unico que tenes que hacer es cambiar el signo (+) o (-) y asi resta o suma una hora
Otra cosa, configura en 24 hs el reloj de windows asi no tengas problemas.
bye espero que te sirva

  Respuesta:  Hugo OH
Hola cesar,

Como sabras, la clase que utiliza delphi para manejar fechas y horas es TDateTime... se trata de un numero flotante en el que la parte entera corresponde a la fecha y la fraccionaria a la hora... de esta manera, si al valor de una hora X le quieres agregar seis horas tenemos que 6 horas equivalen a una cuarta parte, por lo tanto a ese valor X habra que sumarle 0.25... o restarle...

por ejemplo, el siguiente codigo coloca en un Edit la hora actual y en otro Edit esa misa hora mas 1 hora (1/24 de un día) y 30 minutos... si quisieras trabajar con horas y minutos tendrias que utilizar h/24+m/1440 ... y asi sucesivamente...

Edit1.Text := TimeToStr(Time);
Edit2.Text := TimeToStr(Time + 1/24 + 30/1440);

saludos y espero te sirva... puedes revisar la ayuda del TDateTime type para mas detalles...

EOF