Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   sumar semanas al la fecha actual (https://www.clubdelphi.com/foros/showthread.php?t=48853)

UREÑA 05-10-2007 17:38:20

sumar semanas al la fecha actual
 
hola amigos buen dia!!!

tengo un problema:eek:

tengo un catalogo de materias y cada una tiene un campo que se llama semanas dependiendo del valor del campo de semanas es la duracion de la materia

como poder sumar las semanas a la fecha actual??
la verdad no se me ocurre algo por no todos los meses traen los mismos dias:confused:

gracias por su atencion:rolleyes:

maeyanes 05-10-2007 17:43:37

Desde Delphi puedes hacer algo como esto:

Código Delphi [-]
uses DateUtils;

begin
  //Incrementamos 5 semanas a la fecha actual...
  FechaMasNSemanas := IncWeek(Now, 5)
end;


Saludos...

UREÑA 05-10-2007 17:52:42

gracias maeyanes

deja lo checo y te aviso
:D

UREÑA 05-10-2007 18:47:13

hola maeyanes me marca un error:(

esto lo puse en uses hasta arriba de mi codigo
DateUtils

me dice que no funciona el archivo DateUtils.dcu
estoy usando delphi 5 y firebird:rolleyes:

maeyanes 05-10-2007 18:54:34

Uh!!

Es por eso que es buena idea siempre especificar que versión de Delphi usas cuando haces tus preguntas...

Esto que te mencioné funciona en las versiones de Delphi 6 en adelante... para tu mala suerte, en Delphi 5 la unidad DateUtils no existe...

Habrá que buscar otra solución a tu problema...

Checa aquí a ver si encuentras algo que te sirva: http://delphi.newswhat.com/geoxml/fo...ps.borland.com

UREÑA 15-10-2007 21:41:40

hola amigos despues de un buen rato ya solucuione mi problema por si alguien le sirve de algo!!

o si tengo errores para que me ayuden a mejorar mi codigo
gracias

Código SQL [-]
var     //CALCULA LA CANTIDAD DE DIAS DEL MES ACTUAL
   PrimerDiaMes, PrimerDiaMesSiguiente   : TDateTime;
   anyo, mes, dia: Word;
   fechasistema, dias, resulta, restodias, id_periodo, resulta2: String;
   e, a, c, calcula, fechafinal : integer;
begin      //cantidad de dias que dura la materia
   calcula := frm_DataModule.qry_este.Fields[1].AsInteger;
   calcula := calcula * 7;
   Edit1.Text := DateTimeToText(date);
   DecodeDate( date, anyo, mes, dia );
   primerDiaMes := EncodeDate(anyo, mes, 1);
   primerDiaMesSiguiente := IncMonth(primerDiaMes, 1);
   for e := 0 to 31 do
   begin
   primerDiaMes := primerDiaMes + 1;
   if PrimerDiaMes = PrimerDiaMesSiguiente then
   begin
   a := 1;
   a := a + e;
   fechasistema := DateTimeToStr(date); //toma el dia del sistema
   dias := copy(fechasistema, 1,2);
   restodias := copy(fechasistema, 3, 10);
   //suma dias a fecha actual
   c := StrToInt(dias) + calcula;
   end;
   end;
   if c <= a then   //si la duracion de la materia no supera la fecha de fin del mes
   begin
   fechafinal := calcula + StrToInt(dias);
   resulta2 := DateToStr(PrimerDiaMes);
   Delete(resulta2, 1, 2);
   Edit2.Text := IntToStr(fechafinal) + resulta2;
   id_periodo := edit1.Text +'-'+ Edit2.Text;
   edit3.Text :=  id_periodo;
   end
   else
   begin
   c := a - StrToInt(dias);  //si la duracion de la materia abarca hasta el siguinete mes
   fechafinal := calcula - c;
   resulta := DateToStr(PrimerDiaMesSiguiente);
   delete(resulta,1,2);
   Edit2.Text := IntToStr(fechafinal) + resulta;
   id_periodo := edit1.Text +'-'+ Edit2.Text;
   edit3.Text :=  id_periodo;

   end;

calcula la cantidad de dias del mes en curso y asigna la fecha de fin de una materia dependiendo de la duracion
:rolleyes:

muchas gracias a todos pero en especial a maeyanes

cHackAll 15-10-2007 22:12:40

Cita:

Empezado por UREÑA
...o si tengo errores para que me ayuden a mejorar mi codigo
gracias...

Como observación al post, usa la etiqueta DELPHI y no así SQL para enmarcar tu código pues así como está sin tabulacion no es muy comprensible.

Como observación al hilo en general; Now es una variable de tipo TDateTime = Doble, lo que significa que tiene una parte entera y una parte decimal... la parte ENTERA es la cantidad de días que pasaron desde 1900 (creo), entonces si a la parte entera le añades 7 estas sumandole una semana independientemente de la cantidad de días que tenga el mes en curso. Lo mismo con la parte decimal solo que ahora estamos hablando de milisegundos desde las 0 horas del día actual.

Con tales datos podríamos decir que la respuesta a tu hilo hubiese sido:

Código Delphi [-]
 En3Semanas := Now + 7*3;

Pruébalo ahora con 5 semanas:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
 Caption := DateToStr(Now) + ' / ' + DateToStr(Now + 7*5);
end;

Saludos.

UREÑA 17-10-2007 18:59:32

gracias chacall

:rolleyes: perdon por el acomodo del codigo es que como me meti a esto de la programada asi nomas sin saber los fundamentos ni la estructuracion de codigos pero no lo vuelvo a hacer, que pena:o
bueno hechando a perder se aprende gracias!!!

despues de tantas lineas de codigo me lo vinister a solucionar con una, lo que es no saber, bueno pero poco a poco voy aprendiendo
acepto cualquier tipo de ayuda un manualito una web etc

gracias !!!

un saludo!!

cHackAll 17-10-2007 21:18:56

Cita:

Empezado por UREÑA (Mensaje 239226)
gracias chacall

:rolleyes: perdon por el acomodo del codigo es que como me meti a esto de la programada asi nomas sin saber los fundamentos ni la estructuracion de codigos pero no lo vuelvo a hacer, que pena:o
bueno hechando a perder se aprende gracias!!!

despues de tantas lineas de codigo me lo vinister a solucionar con una, lo que es no saber, bueno pero poco a poco voy aprendiendo
acepto cualquier tipo de ayuda un manualito una web etc

gracias !!!

un saludo!!

Por la forma de "acomodar" el código... no te fijes, solo fue un comentario inocente y si tu codigo fuente tiene ese aspecto procura tabularlo para que en el futuro, tú misma lo puedas entender.

Lo de "solucionar con una línea", tampoco creo que sea por "no saber"... fíjate ésto.

Saludos


La franja horaria es GMT +2. Ahora son las 15:17:46.

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