Gracias a todos, por su valiosa colaboracion
con sus consejos y recomendaciones pude lograr mi objetivo.
A continuacion esta el codigo:
Una ves mas Gracias a todos....
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
var
Present,PrimerDia,primerDiaMesSig,
m,ndia,dFecha,dFecha2,dFecha3,dFecha4: TDateTime;
cantDiaMes,re: word;
Year, Month, Day, Hour, Min, Sec, MSec, Tf : Word;
n :integer;
date, Date2, date3, Date4,
sYear,sDia,cFecha,cFecha2,cFecha3,cFecha4 : string;
I,iCount, DiaTopeMes, inDias :Integer;
quinc1, quinc2:Real;
begin
case rgpPeriodos.ItemIndex of
0:begin
DiaTopeMes := 30;
quinc1:= DiaTopeMes/2;
quinc2:= quinc1 + 1;
with Query1 do
begin
Sql.Clear;
close;
try
sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
ExecSQL;
except
end;
sYear :=copy(DateEdit971.text,7,10); sDia :=copy(DateEdit971.text,1,2); For i:= 1 to 12 Do
Begin
Month:= Month + 1;
if Length(IntToStr(Month)) <> 2 then
begin
Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
end
else
begin
Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
end;
dFecha :=strTodate(Date);
PrimerDia := StrToDate(Date);
PrimerDiaMesSig := incMonth(PrimerDia,1);
cantDiaMes := round(PrimerDiaMesSig - PrimerDia);
for iCount := 1 to 4 do
Begin
inDias := 7;
if iCount = 1 then
begin
dFecha4 := dFecha;
dFecha := dFecha+7;
Dfecha := dFecha -1;
end
else
begin
dFecha4 := dFecha;
dFecha := dFecha+7;
end;
cfecha := DateTostr(dFecha);
cFecha4 := DateTostr(dFecha4);
if iCount = 1 then
begin
Close;
sql.Clear ;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(cFecha4)+','+QuotedStr(cFecha)+')');
ExecSQL;
end;
dFecha2 := dFecha+1;
cFecha2 := DateTostr(dFecha2);
dFecha3 := dFecha+7;
cFecha3 := DateTostr(dFecha3);
sql.Clear ;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(cFecha2)+','+QuotedStr(cFecha3)+')');
ExecSQL;
end;
end;
end;
With query2 do
begin
sql.clear;
close;
sql.add('select * from #TempPeri');
open;
end;
end;
1:begin
DiaTopeMes := 30;
quinc1:= DiaTopeMes/2;
quinc2:= quinc1 + 1;
with Query1 do
begin
Sql.Clear;
close;
try
sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
ExecSQL;
except
end;
sYear :=copy(DateEdit971.text,7,10); sDia :=copy(DateEdit971.text,1,2); For i:= 1 to 12 Do
Begin
Month:= Month + 1;
if Length(IntToStr(Month)) <> 2 then
begin
Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
Date2 := FloatToStr(quinc1) +'/'+'0'+IntToStr(Month)+'/'+sYear;
end
else
begin
Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
Date2 := FloatToStr(quinc1) +'/'+IntToStr(Month)+'/'+sYear;
end;
PrimerDia :=StrToDate(Date);
PrimerDiaMesSig := incMonth(PrimerDia,1);
cantDiaMes := round(PrimerDiaMesSig - PrimerDia);
if Length(IntToStr(Month)) <> 2 then
begin
Date3 := FloatToStr(quinc2) +'/'+'0'+IntToStr(Month)+'/'+sYear;
Date4 := IntToStr(cantDiaMes ) +'/'+'0'+IntToStr(Month)+'/'+sYear;
end
else
begin
Date3 := FloatToStr(quinc2) +'/'+IntToStr(Month)+'/'+sYear;
Date4 := IntToStr(cantDiaMes ) +'/'+IntToStr(Month)+'/'+sYear;
end;
Close;
sql.Clear ;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(Date)+','+QuotedStr(Date2)+')');
ExecSQL;
sql.Clear ;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(Date3)+','+QuotedStr(Date4)+')');
ExecSQL;
end;
end;
With query2 do
begin
sql.clear;
close;
sql.add('select * from #TempPeri');
open;
end;
end;
2:begin
DiaTopeMes := 30;
quinc1:= DiaTopeMes/2;
quinc2:= quinc1 + 1;
with Query1 do
begin
Sql.Clear;
close;
try
Sql.add('drop table #TempPeri');
Sql.Clear;
close;
sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
ExecSQL;
except
end;
sYear :=copy(DateEdit971.text,7,10); sDia :=copy(DateEdit971.text,1,2); For i:= 1 to 12 Do
Begin
Month:= Month + 1;
if Length(IntToStr(Month)) <> 2 then
begin
Date := sDia+'/'+'0'+IntToStr(Month)+'/'+sYear;
end
else
begin
Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
end;
PrimerDia :=StrToDate(Date);
PrimerDiaMesSig := incMonth(PrimerDia,1);
cantDiaMes := round(PrimerDiaMesSig - PrimerDia);
if Length(IntToStr(Month)) <> 2 then
begin
Date4 := IntToStr(cantDiaMes ) +'/'+'0'+IntToStr(Month)+'/'+sYear;
end
else
begin
Date4 := IntToStr(cantDiaMes ) +'/'+IntToStr(Month)+'/'+sYear;
end;
Close;
sql.Clear ;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(Date)+','+QuotedStr(Date4)+')');
ExecSQL;
end;
end;
With query2 do
begin
sql.clear;
close;
sql.add('select * from #TempPeri');
open;
end;
end;
3:begin
with Query1 do
begin
Sql.Clear;
close;
try
Sql.add('drop table #TempPeri');
Sql.Clear;
close;
sql.add('create table #TempPeri(fecha_1 char(20),fecha_2 char(20))');
ExecSQL;
except
end;
sYear := copy(DateEdit971.text,7,10); sDia := copy(DateEdit971.text,1,2);
if Length(IntToStr(Month)) <> 2 then
begin
Date := sDia+'/'+'01'+'/'+sYear;
end
else
begin
Date := sDia+'/'+IntToStr(Month)+'/'+sYear;
end;
dFecha := StrTodate(Date);
cFecha := DateTostr(dFecha);
cFecha2 := '31/12/'+sYear;
sql.Clear;
Close;
Sql.Add('insert into #TempPeri');
sql.add('Values('+QuotedStr(cFecha)+','+QuotedStr(cFecha2)+')');
ExecSQL;
end;
With query2 do
begin
sql.clear;
close;
sql.add('select * from #TempPeri');
open;
end;
end;
end;
end;