Como Somar Datas ????
Ola Amigo do Forum,
meu proplema e somar data, tenho um formulario que recebe a a data do dia automatico num determinado campo, quero que ele pegue a data do dia e some 6 meses e me retorne a data futura, ja somada ao 6 meses , COMO FAZER ISSO ?
meu proplema e somar data, tenho um formulario que recebe a a data do dia automatico num determinado campo, quero que ele pegue a data do dia e some 6 meses e me retorne a data futura, ja somada ao 6 meses , COMO FAZER ISSO ?
Wesleygoncavles
Curtidas 0
Respostas
Cleyton
08/10/2003
teoricamente 6*30 são 180 dias mas vc precisa saber quais mese tem 30, 31 ou vinte e nove dias, se o ano for divisivel por 4 é bissexto portanto fevereiro tem 29
o raciocinio é este, se naum conseguir desenvolver te ajudo com mais calma hoje estou muito atarefado pra fazer a rotina
o raciocinio é este, se naum conseguir desenvolver te ajudo com mais calma hoje estou muito atarefado pra fazer a rotina
GOSTEI 0
Marcelofelix
08/10/2003
Da uma olhada na unit DateUtils, essa unit tem varias funções que trabalhão com data.
GOSTEI 0
Cristiane.spl
08/10/2003
utiliza essa função
IncMonth(date,qtda);
aonde date é a data atual
qtda é a qtda de meses que vc quer incrementar na data
assim vc não precisa saber quantos dias tem o mês
IncMonth(date,qtda);
aonde date é a data atual
qtda é a qtda de meses que vc quer incrementar na data
assim vc não precisa saber quantos dias tem o mês
GOSTEI 0
Wesleygoncavles
08/10/2003
nao consegui fazer isso
----
----
teoricamente 6*30 são 180 dias mas vc precisa saber quais mese tem 30, 31 ou vinte e nove dias, se o ano for divisivel por 4 é bissexto portanto fevereiro tem 29
o raciocinio é este, se naum conseguir desenvolver te ajudo com mais calma hoje estou muito atarefado pra fazer a rotina
GOSTEI 0
Wesleygoncavles
08/10/2003
como fazer ????
utiliza essa função
IncMonth(date,qtda);
aonde date é a data atual
qtda é a qtda de meses que vc quer incrementar na data
assim vc não precisa saber quantos dias tem o mês
GOSTEI 0
Cabelo
08/10/2003
utilize esta codificação
v_data := formatdatetime(´dd/mm/yy´, now + 180);
esta função lhe retornará uma string, se vc quiser um TDatetime, declare uma variável deste tipo e:
v_date := now + 180;
se ainda vc quiser jogar uma data que seu sistema lhe dá faça assim :
se for string strtodate(campo da data) + 180;
isso se for para uma variável Tdatetime se for pra uma variável do tipo string é assim formatdatetime(´dd/mm/yy´, strtodate(campo da data) + 180);
v_data := formatdatetime(´dd/mm/yy´, now + 180);
esta função lhe retornará uma string, se vc quiser um TDatetime, declare uma variável deste tipo e:
v_date := now + 180;
se ainda vc quiser jogar uma data que seu sistema lhe dá faça assim :
se for string strtodate(campo da data) + 180;
isso se for para uma variável Tdatetime se for pra uma variável do tipo string é assim formatdatetime(´dd/mm/yy´, strtodate(campo da data) + 180);
GOSTEI 0
Luizhfj
08/10/2003
Prezado amigo, vc pode converter as datas para o formato Float/Curr/Double e soma-las com se fossem nºs ex.:
var
dt1, dt2, dt3 : double;
begin
ShortDateFormat := ´dd/mm/yy´;
if qy_conslancamentospago.Value = ´0´ then
begin
dt1:=qy_conslancamentos.fieldbyname(´venc´).asfloat;
dt2:= date;
dt3:=(dt1-dt2);
qy_conslancamentos.FieldByName(´diasvenc´).asstring:=CurrTostr(Dt3);
end
else
begin
dt1:=qy_conslancamentos.fieldbyname(´venc´).AsCurrency;
dt2:=qy_conslancamentos.fieldbyname(´pagamento´).AsCurrency;
dt3:=(dt2-dt1);
qy_conslancamentos.FieldByName(´atraso´).asstring:=CurrTostr(Dt3);
end;
end;
Atenciosamente,
Luiz Henrique
var
dt1, dt2, dt3 : double;
begin
ShortDateFormat := ´dd/mm/yy´;
if qy_conslancamentospago.Value = ´0´ then
begin
dt1:=qy_conslancamentos.fieldbyname(´venc´).asfloat;
dt2:= date;
dt3:=(dt1-dt2);
qy_conslancamentos.FieldByName(´diasvenc´).asstring:=CurrTostr(Dt3);
end
else
begin
dt1:=qy_conslancamentos.fieldbyname(´venc´).AsCurrency;
dt2:=qy_conslancamentos.fieldbyname(´pagamento´).AsCurrency;
dt3:=(dt2-dt1);
qy_conslancamentos.FieldByName(´atraso´).asstring:=CurrTostr(Dt3);
end;
end;
Atenciosamente,
Luiz Henrique
GOSTEI 0