GARANTIR DESCONTO

Fórum Somar um mês #177836

27/08/2003

0

Tenho um problema, por exemplo, supondo que uma variável data_fech = 12/09/2003. Eu preciso que some um mês, mas que o resultado seja dia todo dia 10 e o mês somado ao mês referido na data da variável.

Por favor me ajudem!!!!!


Mozill@

Mozill@

Responder

Posts

27/08/2003

Wbb

Você pode usar a função IncMonth(), entrando com o formato de data dd/mm/yyyy (como, 10/06/2003). Faça da seguinte maneira:

Edit2.Text := DateToStr(IncMonth(StrToDate(Edit1.Text), 1));

Onde: ´1´, no fim da linha de código, é o número de meses que você quer que sejam acrescentados.


wbb


Responder

Gostei + 0

27/08/2003

Marcelo Saviski

Para incrementar um mês em uma data use a função IncMonth

mas se não for isso, então esquece, não consegui interpretar muito bem a sua dúvida

100+


Responder

Gostei + 0

27/08/2003

Bacalhau

Comecemos por pegar na data exemplo: 12/09/2003. Queres transformar isto em 10/10/2003, ou seja incrementar o mês mas sempre no dia 10.

Partindo do princípio que é isto, cá vai:

var mes : integer;
ano : integer;

// vou capturar o mês da data
mes := strtoint(copy(data,4,2));
// vou capturar o ano da data
ano := strtoint(copy(data,7,4));

// se não for Dezembro incremento o mes
if ((mes >1) and (mes < 12)) then mes := mes + 1
else
begin
// É dezembro. Tenho de colocar o mes = 1 e incrementar o ano
mes := 1;
ano := ano + 1;
end;

// agora escrevo na data final
// se data_final é uma string fica assim
data_final := ´10/´ + inttostr(mes) + ´/´ + inttostr(ano);
// se data_final é TDatetime fica assim
data_final := strtodate(´10/´ + inttostr(mes) + ´/´ + inttostr(ano));

Abraço do bacalhau


Responder

Gostei + 0

27/08/2003

Mozill@

:D Muito obrigado pessoal pela força!!! :D


Responder

Gostei + 0

27/08/2003

Midas

var
dt_venc:tdate;
dd,mm,aa:word;
mes:string;

begin
dt_venc:=strtodate(edit1.Text);
dt_venc:=incmonth(dt_venc,1);
decodedate(dt_venc,aa,mm,dd);
mes:=inttostr(mm);
if Length(inttostr(mm))=1 then
mes:=´0´+inttostr(mm);
if (dd>6) and (dd<=15) then
begin
edit2.Text:=´10´+´/´+mes+´/´+inttostr(aa);
end;
if (dd>16) and (dd<=25) then
begin
edit2.Text:=´20´+´/´+mes+´/´+inttostr(aa);
end;
if (dd>26) and (dd<=5) then
begin
edit2.Text:=´30´+´/´+mes+´/´+inttostr(aa);
end;


Responder

Gostei + 0

28/08/2003

Midas

deu certo ?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar