FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con IncHour()
Hola,
necesito sumar horas a una fecha inicial y luego extraer el dia del año. Comienzo por el 13/7/2005 0:00 que es el 38546. Luego sumo horas con: fechaAux:=inchour(fechaAux,1); y extraigo el dia juliano con : stringgrid7.cells[2,i]:=inttostr(DayOfTheYear(fechaAux)); y asi sucesivamente, me da bien hasta la hora 23, pues en la 24 no me da exacto, me da 38546.99999 y al extraer el dia me da el dia inicial. sin embargo al mostrar la fecha con: :=datetostr(fechaAux)+' '+timetostr(fechaaux); da el valor correcto de 14/7/2005 0:00. Que puedo hacer para que al sumar horas, en la 24 me de el dia siguiente exacto? gracias |
#2
|
||||
|
||||
Hola Anel.
No alcanzo a ver claramente la situación que planteas, pero realizá una prueba simple: Como verás en el ejemplo, al sumar 1 a la hora 23 obtenes exáctamente el día siguiente con la hora 00:00, pero como te dije arriba no sé si estoy captando la esencia de tu problema. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
re
Si,
lo ke planteas es correcto, pero si a la hora 24 despues de haber aplicado el incHour() le aplicas :=inttostr(DayOfTheYear(fechaAux)) para saber el dia juliano toma el numero del dia con .999 y te da el dia anterior no el ke empieza a las 0:00. pruebalo y veras, porfa! gracias! |
#4
|
||||
|
||||
Hola.
Ahora si te entiendo y es tál cual comentas. La verdad no he tenido ocasión de aplicar ese caso, seguramente sea el comportamiento de la función. Supongo que una solución sería:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
si, gracias,
lo ke la llamada aDayOfTheYear(fechaAux) la hago dentro de un writln que lleva varios string y copy y strtofloat etc y de esa manera se me complica el codigo. si se pudiera corregir el delDayOfTheYear(fechaAux) para que quedara todo en una sola linea... mil gracias al que aporte! |
#6
|
|||
|
|||
al final he resuelto combrobando la hora despues del IncHour():
if HourOf(fechaAux)=0 then fechaAux:=round(fechaAux); si lo hago antes corro el riesgo de errar si una serie comienza en una hora=0. gracias |
|
|
|