FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con el Time.
Hola a todos, tengo un problema al comparar dos horas, para compararlas lo paso todo a un integer, pero tengo el problema de que la hora tiene 2 puntos. Entonces guardo la posición del carácter ':' y después hago la fórmula.
El problema es que cuando la hora está entre las 0:00 y las 9:59 ningún problema (es decir que la hora solo tiene un dígito) si tiene dos dígitos siempre da error. ¿Hay algún error en la fórmula o puede hacerse de otra manera?. Muchas gracias por vuestra ayuda. Código:
Hora:=(Time); Hora:=hora+1; c:=Pos(':',TimetoStr(hora)); d:=Pos(':',TimetoStr(hora2)); lbhoraa.Caption:=TimetoStr(Time); a:=(StrtoInt(copy(TimetoStr(hora),0,c-1))*3600)+(StrtoInt(copy(TimetoStr(hora),c,2))*60){+(StrtoInt(copy(TimetoStr(hora),c+4,2))); b:=(StrtoInt(copy(TimetoStr(hora2),0,d-1))*3600)+(StrtoInt(copy(TimetoStr(hora2),c,2))*60){+(StrtoInt(copy(TimetoStr(hora2),c+4,2)));
__________________
"La perseverancia es el camino del éxito" |
#2
|
||||
|
||||
Te recomiendo que eches una visual a la función HoursBetween, por ejemplo, desde la ayuda puedes acceder a todas las rutinas que hay en la unidad DateUtils, que son extensas y permite comparar fechas/horas de una forma muy comoda.
Una sugerencia, nunca uses comparaciones de hora (TTime), siempre usa comparaciones de fecha y hora (TdateTime), de esta forma siempre obtendrás los resultados correctos: Funciones que te serviran: RecodeDate RecodeTime RecodeDatetime EncodeTime EncodeDatetime HoursBetween MinutesBetween etc. Un saludo |
|
|
|