Ver Mensaje Individual
  #2  
Antiguo 24-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola fabricio.

El problema se presenta por que es muy improbable que hagas la toma de tiempo exáctamente en '7/06/1998 9:10:00 am'.
Normalmente obtenes un valor como '7/06/1998 9:10:00,15 am', mayor y por lo tanto no comprendido en los límites del período.

Si no te importa tanta exactitud podrías hacer:
Código Delphi [-]
const
  AJUSTE = 1000000;
var
  PeriodoIni, PeriodoFin, Toma: TDateTime;
begin
  // valores arbitrarios para el ejemplo
  PeriodoIni:= StrToDateTime('7/06/1998 9:10:00 am');  
  PeriodoFin:= StrToDateTime('7/06/1998 9:10:00 am');
  PeriodoIni:= Trunc(PeriodoIni*AJUSTE)/AJUSTE;    // hh:mm:ss
  PeriodoFin:= Trunc(PeriodoFin*AJUSTE)/AJUSTE;    // hh:mm:ss
  // valor a evaluar
  Toma:= StrToDateTime('7/06/1998 9:10:00,47 am'); // mayor en ,47 
  Toma:= Trunc(Toma*AJUSTE)/AJUSTE;                // hh:mm:ss
  if (Toma >= PeriodoIni) and (Toma <= PeriodoFin) then
   ShowMessage('Comprendida en el período')
  else
   ShowMessage('No comprendida en el período');
end;
De este modo estarías evaluando sólamente horas, minutos y segundos.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-06-2011 a las 13:49:29. Razón: añadir comentarios al codigo
Responder Con Cita