FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Funcion MinutesBetween...
Hola a todos..
Resulta que estoy realizando una comparacion entres dos TDateTime pero tengo una diferencia de un minuto (deberia dar 600 y no 599), habra fallas en esta funcion y que podria hacer para solucionar esto?, probe con HoursBetween y tambien hay una hora de diferencia deberia ser 10 y no 9. Gracias por su ayuda dejo codigo fuente.
|
#2
|
||||
|
||||
esto.... ¿y los segundos en la hora?.... ¿y los milisegundos ?
Delito tiene decir que esas rutinas fallan
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
Hombre, muy normal, muy normal, esto no es:
Resultado: Cita:
Última edición por yapt fecha: 08-12-2009 a las 13:38:00. Razón: El resultado del Memo1, no se correspondia con el código (le había dado la vuelta para ver si influia en algo). :-) |
#4
|
||||
|
||||
Sí, tienes razón, para mi no es muy normal andar utilizando la fecha base del calendario para realizar diferencias de horas.
¿por qué no miras la diferencia entre las 23:00 y las 1:00 con tu código anterior? eso es más ameno En resumen: Usa formato de fecha y hora siempre. No dejes los milisegundos en olvido si quieres precisión de 1 segundo (ten en cuenta que un milisegundo es el culpable de tener un segundo menos en el resultado, un minuto menos, una hora menos ... ) Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Pues ya me ilustraras cuando tengas un rato, porque no te entiendo. :-) jejeje....
Como podemos hacer que esas funciones hagan lo que tienen que hacedr de forma correcta (desde un punto de vista "humano") ? La verdad es que utilizo poco esas funciones. Siempre trabajo en minutos o segundos (para mí, habitualmente, las fechas no son necesarias, por eso guardo solo segundos o minutos -integer- y opero con ellos de forma directa y con mis propias funciones) Salu2. |
#6
|
||||
|
||||
ah, perdon.
Lo normal es usar la archifamosa función Now() para tenerlo todo, la fecha, hora y milisegundos, después si quieres cambiar un dato de la fecha, tiras de la unidad dateutils: - recodeDate - recodeTime - encodeDateTime - decodeDatetime - dayOf - monthOf - yearOf - incMonth - incDay - incHour - incMinutes - ... (revisa la ayuda de DateUtils) como ves tienes un monton de rutinas para trabajar cómodamente sin tener que codificar con string las fechas y horas. Al grano en tu ejemplo:
Si no has tenido problemas hasta ahora, es porque no has calculado diferencias de horas estando de por medio el cambio de fecha, por ejemplo, desde las 23:00 hasta la 1:00 no van 2 horas de diferencia, Delphi te dirá que van 22 horas. Al no considerar la fecha, Delphi usa la misma fecha (30/12/1899 1:00 hasta el 30/12/1899 23:00) calculando la diferencia al revés, desde la 1 de la madrugada hasta las 23:00 horas de ese mismo día Al principio crees que una rutina como incDay es una tontería, es sólo sumar un día a la fecha anterior pero,¿y si el año es bisiesto? ¿o no lo es?, obviamente todos esos "peros" están ya controlados en esas rutinas. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Ok... acabaramos.
Entonces podemos resumir el asunto en que el problema está en la función 'StrtoTime', pero no en 'MinutesBetween' (que es, también, de dateutils). Aclarado queda. Salu2. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Funcion ABS | brandolin | SQL | 5 | 24-01-2009 14:53:38 |
Función o q? | Veanny | Internet | 2 | 21-02-2008 21:43:40 |
Funcion | fafita | Varios | 7 | 25-01-2008 16:03:40 |
Problemas con MinutesBetween | romansiux | Varios | 4 | 21-05-2005 14:27:56 |
funcion | agora18 | SQL | 1 | 06-10-2003 07:18:30 |
|