Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
¿como restar horas a un datetime?

¿como se restan horas con un date time?

si tengo la fecha y la hora en un datetime
como puedo restarle 2 horas. 3 horas.

o sumarle / restarle horas . minutos. seg. dias. meses años??
Responder Con Cita
  #2  
Antiguo 18-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola JXJ.

Usá la función IncHour de la unit DateUtils.

En el ejemplo que te hice se le restan cuatro horas a la hora actual:
Código Delphi [-]
...
uses DateUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  MDate: TDateTime;
  Horas: Integer;
begin
  MDate:= Now;
  Horas:= 4; // Nro de horas
  MDate:= IncHour(MDate, - Abs(Horas)); // Abs, por si Horas < 0
end;

Saludos.

Última edición por ecfisa fecha: 18-10-2010 a las 05:56:37.
Responder Con Cita
  #3  
Antiguo 18-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo JXJ.

No presté atención a la última parte de tu texto:
Cita:
o sumarle / restarle horas . minutos. seg. dias. meses años??
Con esta función creo que solucionas todo:
Código Delphi [-]
procedure SumaRestaDateTime(var ADateTime: TDateTime; dd, mm, aa, h, m, s: Integer);
begin
  ADateTime:= IncYear(AdateTime, aa);
  AdateTime:= IncMonth(AdateTime, mm);
  AdateTime:= IncDay(AdateTime, dd);
  AdateTime:= IncHour(AdateTime, h);
  AdateTime:= IncMinute(ADateTime, m);
  AdateTime:= IncSecond(AdateTime, s);
end;

Ejemplos de uso:
Código Delphi [-]
var
  MDateTime: TDateTime;
begin
   SumaRestaDateTime(MDateTime, -1, -1, -1, -1, -1, -1); // Resta: 1 día, 1 mes, 1 año, 1 hr, 1 min, 1seg
   SumaRestaDateTime(MDateTime, 1, 1, 1, 1, 1, 1);       // Suma:  1 día, 1 mes, 1 año, 1 hr, 1 min, 1seg
   SumaRestaDateTime(MDateTime, -1, 0, 0, 0, -1, 5);     // Resta: 1dia y 1 min. Suma 5 seg
end;

Saludos.

Última edición por ecfisa fecha: 18-10-2010 a las 08:04:08.
Responder Con Cita
  #4  
Antiguo 10-06-2016
Avatar de darkbits
darkbits darkbits is offline
Miembro
 
Registrado: may 2006
Posts: 280
Poder: 19
darkbits Va por buen camino
Wink

revivo este hilo despues de año porque en DX10

el unico que funciona es:
Código Delphi [-]
  AdateTime:= IncMonth(AdateTime, mm);

estas ya no funcionan o talvez las cambiaron alguien me puede dar una ayuda? como trabajar en DX10
Código Delphi [-]
  ADateTime:= IncYear(AdateTime, aa);
  AdateTime:= IncDay(AdateTime, dd);
  AdateTime:= IncHour(AdateTime, h);
  AdateTime:= IncMinute(ADateTime, m);
  AdateTime:= IncSecond(AdateTime, s);
__________________
Gracias por su coloración club delphi

darkbits ;)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como pasar un DateTime a formato Horas? Jonathan96 SQL 13 15-01-2009 19:13:59
restar minutos a un DATETIME en mysql advancexz SQL 0 03-07-2008 05:27:21
Restar Horas ManuelPerez Varios 2 09-03-2008 22:30:00
Restar dos campos de Tipo DateTime JuanPa1 SQL 4 19-08-2006 02:03:34
Restar 2 horas... CFPA86 Varios 1 17-10-2003 20:30:54


La franja horaria es GMT +2. Ahora son las 05:38:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi