Como incrementar datas ?
16/05/2003
0
Por exemplo:
data_inicial= 06/05/2003
data_final=30/05/2003
terças: 06/05/2003, 13/05/2003, 20/05/2003 e 27/05/2003.
sextas: 09/05/2003, 16/05/2003, 23/05/2003 e 30/05/2003
Rodrigo Costa
Posts
16/05/2003
Carnette
Por exemplo:
data_inicial= 06/05/2003
data_final=30/05/2003
terças: 06/05/2003, 13/05/2003, 20/05/2003 e 27/05/2003.
sextas: 09/05/2003, 16/05/2003, 23/05/2003 e 30/05/2003[/quote:9574beb1a1]
Pega esta UNIT e coloca em teus projetos....nela tem todas as funçoes de conversões e calculos com data e hora...
http://www.carnette.kit.net/D5/esbdates.zip
16/05/2003
Rodrigo Costa
Eu baixei e vi que quem um ´trilhão´ de funções que irão de ajudar em outros projetos. Mas não consegui achar nenhuma que se adapte a essa minha necessidade específica.
18/05/2003
Jeancamila
memo1
maskedit1
maskedit2
button1
e codifique o codigo abaixo:
obs.: codigo para achar as terça.
procedure TForm1.Button1Click(Sender: TObject);
var i, j : integer;
datini, datafim, datatual : tdate;
begin
memo1.Lines.Clear;
memo1.Lines.Add(´As datas que são terças feiras entre os dias ´+ maskedit1.Text + ´ e ´ + maskedit2.Text + ´são: ´ );
i:= DayOfWeek(strtodate(maskedit1.text));
datafim := strtodate(maskedit2.text);
case i of
1 : j :=2;
2 : j :=1;
3 : j := 0;
4 : j :=6;
5 : j :=5;
6 : j :=4;
7 : j :=3;
end;
datatual := strtodate(maskedit1.text) + j;
while datatual < datafim do
begin
memo1.Lines.Add(datetostr(datatual));
datatual := datatual + 7;
end;
maskedit1.Clear;
maskedit2.Clear;
end;
espero que ajude.
Me avise se vc entender ou nao!
Grato
Jean
19/05/2003
Hamilton Dias
procedure Tf_Tur.btnDiaClick(Sender: TObject);
var Dias, Aulas:Real;
Carga,I, X,X1:Integer;
data:TdateTime;
Dia:String;
begin
Feriado:=´´+#13;
Aulas:=dmCurso.tbTur_HorQuant.value;
Carga:=dmCurso.tbTur_CurCarga.value;
Dias:=Carga/Aulas;
Data:=dmCurso.tbTur.FieldByName(´Inicio´).asDateTime;
Dia:=formatFloat(´0,00´,Dias);
X1:=StrToInt(Dia);
X:=0;
repeat
with dmCurso.tbTur_Dia do
begin
begin
if DayOfWeek(Data) = 1 then
begin
if fieldByName(´Domingo´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´#00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end
else
if DayOfWeek(Data) = 2 then
begin
if fieldByName(´Segunda´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end
else
if DayOfWeek(Data) = 3 then
begin //Inicio do Case
if fieldByName(´Terca´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´#00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end // Final do End do case
else
if DayOfWeek(Data) = 4 then
begin
if fieldByName(´Quarta´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´#00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end
else
if DayOfWeek(Data) = 5 then
begin
if fieldByName(´Quinta´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end
else
if DayOfWeek(Data) = 6 then
begin
if fieldByName(´Sexta´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´#00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end
else
if DayOfWeek(Data) = 7 then
begin
if fieldByName(´Sabado´).asBoolean = true then
begin
if dmCurso.tbTur_Cal.Locate(´Data´,Data,[]) then
begin
if dmCurso.tbTur_Cal.FieldByName(´Data´).asdateTime = Data then
begin
feriado:=feriado+dmCurso.tbTur_Cal.FieldByName(´Descricao´).asString+#13;
Data:=Data+1;
end
end
else
begin
x:=x+1;
dmCurso.tbTur_Pre.Append;
dmCurso.tbTur_Pre.fieldByName(´data´).asDateTime:=Data;
dmCurso.tbTur_Pre.fieldByName(´Aula´).asString:=FormatFloat(´#00´,X)+´/´+intToStr(dmCurso.tbTurDia.value);
dmCurso.tbTur_Pre.Post;
Data:=Data+1;
end;
end
else
Data:=Data+1;
end;
end;
end;
// Data:=Data+1;
until x = x1;
dmCurso.tbTur.edit;
dmCurso.tbTur.FieldbyName(´Fim´).asDateTime:=Data-1;
dmCurso.tbTur.Post;
dmCurso.tbTur_Pre.First;
end;
Clique aqui para fazer login e interagir na Comunidade :)