Ver Mensaje Individual
  #3  
Antiguo 18-12-2007
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Reputación: 21
rafita Va por buen camino
veamos
Código:
var Inicio, Fin : String;
     FInicio, FFin : TDateTime;

begin
   Inicio:='010107';
   Fin:='181207';

   // pasar a TDateTime
   FInicio:=Encode( StrToInt('20'+Copy(Inicio,5,2)), StrToIntCopy(Inicio, 3, 2)), StrToInt(Copy(Inicio, 1, 2)) ); 
   FFin:=Encode( StrToInt('20'+Copy(Fin,5,2)), StrToIntCopy(Fin, 3, 2)), StrToInt(Copy(Fin, 1, 2)) ); 

   // Comparar 
   if FInicio > FFin then .....

Resumiendo, utiliza la función "Encode" pasándole el año, mes y día, y te devuelve una fecha.
Le sumo '20' porque considero que las fechas son de este siglo, pero para evitar problemas te recomiendo que guardes el año con 4 dígitos.

Para comparar las fechas lo puedes hacer directamente ( if FInicio < FFin) pero teniendo en cuenta que no tengan nada en la parte de la hora. Montándolas como yo lo he hecho no tienen nada, pero si las capturas desde el sistema ( FInicio:=NOW) si puede tener contenido y resultar que dos variables con el mismo día son diferentes porque tienen horas distintas.

También puedes utilizar funciones como DaysBetween...


Nota: el código anterior lo he hecho aquí por tanto puede contener errores. Lo importante es la idea
Saludos,
__________________
Rafita.
Responder Con Cita