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
muchas gracias a todos pero en especial a maeyanes