Como Somar Datas ????

Delphi

08/10/2003

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 ?


Wesleygoncavles

Wesleygoncavles

Curtidas 0

Respostas

Cleyton

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


GOSTEI 0
Marcelofelix

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

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


GOSTEI 0
Wesleygoncavles

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

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

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);


GOSTEI 0
Luizhfj

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


GOSTEI 0
POSTAR