Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas con el Time. (https://www.clubdelphi.com/foros/showthread.php?t=19841)

alfredosg19 29-03-2005 10:15:19

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)));


Lepe 29-03-2005 12:02:32

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


La franja horaria es GMT +2. Ahora son las 04:34:56.

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