Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema al comparar variables TTime (https://www.clubdelphi.com/foros/showthread.php?t=76723)

chueco 22-11-2011 03:40:29

Problema al comparar variables TTime
 
Buenas, estoy haciendo una agenda de turnos y tengo que generar la agenda de acuerdo a los siguientes parametros, cada dia laboral tiene su hora inicial y su hora final, y los turnos se dividen de acuerdo a la frecuencia: el codigo es el siguiente:

Código Delphi [-]
while (fecha_actual<=fecha_hasta)do
begin
dia_actual:=Longdaynames[dayofweek(fecha_actual)];
 for dia in dias_laborales do
  begin
    if (dia_actual=dia.dia) then
     begin
      hora_i:=dia.hora_desde;
      hora_f:=dia.hora_hasta;
        while (hora_i < hora_f) do
         begin
         dsw.ZQuery2.SQL.Text:='insert into turno (id_medico,id_paciente,fecha,hora,dia) value ('+inttostr(medicoActivo.id_medico)+',NULL,"'+FormatDateTime('yyyy/m/d',fecha_actual)+'","'+timetostr(hora_i)+'","'+dia.dia+'")';
         dsw.ZQuery2.ExecSQL;
         hora_i:=hora_i+fre;
        end;
      end;
  end;
fecha_actual:=IncDay(fecha_actual,1);
end;

el problema esta al evualuar la condicion del WHILE, por ejemplo si la frecuencia es de 30 minutos y la hora final es a las 20:00, el ultimo turno generado es a las 19:30, que es como deberia ser , Pero si cambio la frecuencia a 20 minutos, y la hora final SIGUE siendo 20:00, el ultimo turno generado es a las 20:00 cuando DEBERIA ser a las 19:40, no encuentro motivo, ya que la condicion esta Menor estricto no deberia suceder esto, sin embargo sucede, je misterios de la vida, alguien tiene idea q puede ser...

Neftali [Germán.Estévez] 22-11-2011 10:34:39

¿Cómo están definidos hora_i , hora_f y fre?

Para operaciones con campos de fecha y hora yo te recomiendo que revises la Unit DateUtils, ya que posee funciones específicas para incrementar minutos, horas, segundos,...


La franja horaria es GMT +2. Ahora son las 09:57:06.

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