Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 23
CarlosHernandez Va por buen camino
restar hs-he

hora:=hs-((1/24)*hs);

asi lo puse y no me da, da otra hora y sigue dandome el formato am/pm, me imagino que lo exprese mal verdad??
__________________
begin
[email protected]
end;
Responder Con Cita
  #2  
Antiguo 21-02-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 21
fdelamo Va por buen camino
Si quieres restar dos horas, se hace directamente: hs-he, pero ten en cuenta que el resultado no es una hora, es la diferencia de horas, teniendo en cuenta que 1 hora = 1/24
__________________
Sotoca Web
Responder Con Cita
  #3  
Antiguo 21-02-2007
Avatar de CarlosHernandez
CarlosHernandez CarlosHernandez is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 23
CarlosHernandez Va por buen camino
exacto e alli el detalle, si resto directo, hs-he 11:02:10 p.m. - 08:59:10 a.m. son 14 horas 7 minutos, y me da 2:33:00 p.m.

como hago que el 2:33:00 p.m. se tranforme en 14:07:00?????????????
__________________
begin
[email protected]
end;
Responder Con Cita
  #4  
Antiguo 21-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Si puedes, te aconsejo que cambies el tipo del campo; en lugar de usar hora usa un TimeStamp (fecha y hora todo en el mismo campo)

Después puedes usar de la unidad DateUtils, toda una batería de funciones:
- HoursBetween(fecha1, fecha2);
- MinutesBetween
- DaysBetween
- MillisecondsBetween
- etc.

La fecha y hora en sí misma, no se guarda con ningún formato de 12/24 horas. Es al tiempo de mostrarlo en pantalla cuando aplicas el formato que quieres. Para ello puedes usar FormatDateTime('hh:nn:ss',fecha1);

Al usar el formato de fecha+hora, no tendrás ningún problema en sumar dos fechas, o sumarle 33 horas, siempre obtendrás el resultado correcto.

Cita:
necesito hacer que "hora" me de 26:41:17
Para esto no hay solución inmediata, pero puedes apoyarte en las funciones mencionadas, o hacer el cálculo tu mismo:
Código Delphi [-]
var f1, f2 : TDatetime;
      h,m,s:word;
begin
 
s := seconsbetween(f1,f2);
h := s div 3600 ;
m := (s mod 3600) div 60; // el resto de la división anterior:
s := (s mod 3600) mod 60;

Edito:
El resultado no podrás codificarlo como una TTime, ni como TDateTime, ya que tiene el límite en 24 horas, por tanto, jamás podrás crear una hora con 26 horas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 21-02-2007 a las 20:06:51.
Responder Con Cita
  #5  
Antiguo 15-12-2009
Vicente Ivan Vicente Ivan is offline
Registrado
 
Registrado: sep 2006
Posts: 2
Poder: 0
Vicente Ivan Va por buen camino
sumar meses a una fecha

ejemplo
sumarle 48 meses a una fecha
o 4 años a una fecha
sin tener que utilizar decode



Cita:
Empezado por Lepe Ver Mensaje
Si puedes, te aconsejo que cambies el tipo del campo; en lugar de usar hora usa un TimeStamp (fecha y hora todo en el mismo campo)

Después puedes usar de la unidad DateUtils, toda una batería de funciones:
- HoursBetween(fecha1, fecha2);
- MinutesBetween
- DaysBetween
- MillisecondsBetween
- etc.

La fecha y hora en sí misma, no se guarda con ningún formato de 12/24 horas. Es al tiempo de mostrarlo en pantalla cuando aplicas el formato que quieres. Para ello puedes usar FormatDateTime('hh:nn:ss',fecha1);

Al usar el formato de fecha+hora, no tendrás ningún problema en sumar dos fechas, o sumarle 33 horas, siempre obtendrás el resultado correcto.



Para esto no hay solución inmediata, pero puedes apoyarte en las funciones mencionadas, o hacer el cálculo tu mismo:
Código Delphi [-]
var f1, f2 : TDatetime;
      h,m,s:word;
begin
 
s := seconsbetween(f1,f2);
h := s div 3600 ;
m := (s mod 3600) div 60; // el resto de la división anterior:
s := (s mod 3600) mod 60;

Edito:
El resultado no podrás codificarlo como una TTime, ni como TDateTime, ya que tiene el límite en 24 horas, por tanto, jamás podrás crear una hora con 26 horas.

Saludos
Responder Con Cita
  #6  
Antiguo 16-12-2009
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 23
nuk3zito Va por buen camino
Cita:
Empezado por Vicente Ivan Ver Mensaje
ejemplo
sumarle 48 meses a una fecha
o 4 años a una fecha
sin tener que utilizar decode
No se si es pregunta o que... pero puedes utilizar IncMonth() o IncYear(), me parece que están en la unit DateUtils.

Saludos.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #7  
Antiguo 04-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 17
gonza_619 Va por buen camino
al hacer la diferencia de hroas aparece asi ,
14:00:00 - 12:00:00 = 2.00 o algo asi

min:=minutesbetween(he,hs);
dec:=roundto(min/60,-1); en este caso reste 5:0:0 - 6:30:0 y dio dec:1,5
pero luego necesito que ese 1,5 vuelva a 1:30:00 pm o am, como seria? ya que "dec" es decimal y tengo q pasarlo a time. gracias!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
restar fechas sql Oraxtar SQL 16 21-01-2008 22:01:44
Restar fechas Acker Varios 4 07-11-2005 14:11:51
Restar 2 horas... CFPA86 Varios 1 17-10-2003 20:30:54
Restar horas en SQL/PLUS de ORACLE Chojj Oracle 6 12-08-2003 15:22:25
restar fechas para comparar resultado @-Soft Conexión con bases de datos 5 14-07-2003 18:33:03


La franja horaria es GMT +2. Ahora son las 15:35:38.


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