FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Fechas caprichosas
Hola a todos:
Haber si alguién descubre el misterio porque a mi me sobrepasa: Código:
//ShowMessage(timetostr(dateHoraFin.Time)); if (((dateHoraInicio.Time=strtotime('0:00:00'))and(dateHoraFin.Time<>strtotime('0:00:00'))) or(timetostr(dateHoraFin.Time)>timetostr(dateHoraInicio.Time)))then Otra cosa... Por que los días el los toma como que van desde las 0:00:00 hasta las 23:59:99 y luego me dice que las 8:00 es más temprano que las 0:00. SOCORROOOOOO!!!!
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net |
#2
|
||||
|
||||
1. No te recomiendo nunca comparar fechas con algo tan estático como dateHoraInicio.Time=strtotime('0:00:00')), a no ser que tu aplicación modifique siempre la variables que da formato a esta hora (ShortTimeFormat, LongTimeFormat).
2. Es importante recordar que un TTime, no deja nunca de ser un TDateTime que no es mas que un número Double. La parte entera de este número corresponde a la fecha, y la parte decimal a la hora. Si quieres comparar la fecha-hora, puedes hacerlo directamente FechaHora1 < FechaHora2... si solo quieres comparar la hora, puedes prescindir de la parte entera Frac(FechaHora1) < Frac(FechaHora2) Para saber si la hora es 0:00:00 (no asignada), puedes preguntar si Frac(FechaHora) = 0. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Cita:
Cita:
Sugiero que mires las funciones: MinutesBetween SecondsBetween HoursBetween dayOf(datetime) ... Puede que te sirvan, eso si, quizás necesites plantear el problema de otra forma. La biblioteca de funciones para trabajar con fechas y horas en Delphi es muy amplia, y te ahorra muchos dolores de cabeza, te lo digo por experiencia Saludos |
|
|
|