Ver Mensaje Individual
  #1  
Antiguo 22-11-2011
chueco chueco is offline
Registrado
NULL
 
Registrado: sep 2011
Posts: 6
Reputación: 0
chueco Va por buen camino
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...
Responder Con Cita