Ver Mensaje Individual
  #3  
Antiguo 01-02-2007
barrauda barrauda is offline
Miembro
 
Registrado: jun 2003
Ubicación: Balcarce - Buenos Aires
Posts: 42
Reputación: 0
barrauda Va por buen camino
Resuelto

Hola marcoszorrilla, muchas gracias por responder. Ya pude resolver el problema entendiendo un poco lo del hilo anterior. Pongo la solución para los que necesiten algo parecido.
Lo que yo etaba precisando era ejecutar un código (puede ser cualquiera, no es lo importante) dentro de un bucle pero que ese bucle dependa de una fecha inicial y una fecha final. Lo que yo tenía que hacer era guardar en una base de datos (PostgreSQL) el número de una semana + la fecha de esa semana, siempre salteando de un dia seleccionado al mismo día de la semana siguiente (por ejemplo si selecciono el Viernes 2 de febrero, el siguiente es 9).
La fecha inicial y la final las selecciono como dije antes de 2 monthcalendar y luego paso la seleccion del los monthcalendar a 2 edit. La complicación era realizar el for o while que recorra las fechas desde la inicial a la final. Lo resolví gracias a la ayuda del hilo mencionado pero tuve que dar vueltas porque no mencionaban los tipos de datos utilizados.
Acá les dejo el código para que lo usen los que necesitan resolver este tipo de problemas.

Código Delphi [-]
procedure TForm6.Button1Click(Sender: TObject);
var i:integer;
diainicio,diafin:double;

begin
    diainicio:=strtodate(edit1.Text);
    diafin:=strtodate(edit2.Text);
    i:=1;
    while (CompareDate(diainicio, diafin) = -1) or (CompareDate(diainicio, diafin) = 0)   do
      {Los valores del while provienen de la unidad DateUtils (agregar en las uses)
      que utilizando la función CompareDate podemos comparar datos. Hay 3 tipos de
      respuestas a la comparación: el -1 significa LessThanValue o sea que el primer
      valor es menor el que segundo; el 0 significa EqualsValue  valores iguales y el
      1 significa GreaterThanValue  que el primero es mayor que el segundo }
      begin
                ztable1.Edit;
                ztable1.Last;
                ztable1.Next;
                ztable1.Insert;
                ztable1.FieldByName('semana').Value:=diainicio;//fecha de la semana
                ztable1.FieldByName('n_semana').Value:=i;//numero de la semana
                ztable1.Post;
                ztable1.Refresh;
                diainicio := diainicio + 7;//incremento 7 días
                 i:=i+1;
      end;
     showmessage('Se Generaron con Éxito las Semanas Para las Horas');
end;
__________________
David Barraud
Licenciado en Sistemas
Responder Con Cita