add mês em um datetime

06/03/2003

0

:shock: Como posso adicionar um mês em uma data???


Anonymous

Anonymous

Responder

Posts

06/03/2003

Marcelo Saviski

[size=14:bb4582cb90][color=darkred:bb4582cb90]Faça assim[/color:bb4582cb90][/size:bb4582cb90]

Var
dia,mes,ano : word;
begin
decodedate(ano,dia,mes,data)
mes := mes + 1;
if mes = 13 then
  begin
    mes = 1
    ano = ano + 1
  end
data := strtodate(dia + ´/´ + mes + ´/´ + ano)


[color=orange:bb4582cb90][b:bb4582cb90]não tenho certeza da ordem do decodedate(ano,mes,dia), veja a ordem certa, pode ser dia,mes,ano - mes,dia,ano, veja lá[/b:bb4582cb90][/color:bb4582cb90]

[b:bb4582cb90][color=green:bb4582cb90]Espero ter ajudado[/color:bb4582cb90][/b:bb4582cb90]

[img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_biggrin.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_smile.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_frown.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_eek.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_confused.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_cool.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_lol.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_mad.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_razz.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_redface.

Responder

06/03/2003

Marcelo Saviski

gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_cry.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_evil.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_rolleyes.gif[/img:bb4582cb90][img:bb4582cb90]http://www.apriori.com.br/cgi/forum/images/smiles/icon_wink.gif[/img:bb4582cb90]
Responder

06/03/2003

Anonymous

:shock: Como posso adicionar um mês em uma data???


{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995, 1996 AO ROSNO             }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

unit DateUtil;

function IncMonth(ADate: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncDate(ADate, 0, Delta, 0);
end;


[]´s
Aroldo Zanela


Responder

06/03/2003

Anonymous

[quote:4e18bf034c=´keidy´]:shock: Como posso adicionar um mês em uma data???


{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995, 1996 AO ROSNO             }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

unit DateUtil;

function IncMonth(ADate: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncDate(ADate, 0, Delta, 0);
end;


[]´s
Aroldo Zanela[/quote:4e18bf034c]

Faltou isso...

function IncDate(ADate: TDateTime; Days, Months, Years: Integer): TDateTime;
var
  D, M, Y: Word;
  Day, Month, Year: Longint;
begin
  DecodeDate(ADate, Y, M, D);
  Year := Y; Month := M; Day := D;
  Inc(Year, Years);
  Inc(Year, Months div 12);
  Inc(Month, Months mod 12);
  if Month < 1 then begin
    Inc(Month, 12);
    Dec(Year);
  end
  else if Month > 12 then begin
    Dec(Month, 12);
    Inc(Year);
  end;
  if Day > DaysPerMonth(Year, Month) then Day := DaysPerMonth(Year, Month);
  Result := EncodeDate(Year, Month, Day) + Days + Frac(ADate);
end;



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar