怎样根据当前日期计算出几个月后的日期(50分)

  • 主题发起人 主题发起人 yuanlaqin
  • 开始时间 开始时间
Y

yuanlaqin

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个一个当前的日期,我想知道如何得到3个月或者N个月后的日期值!也没有这方面的日期函数呢?
 
在线等待中……
 
Delphi世界qq群23981160,希望能帮助你
 
帖一个函数:
function MonthDays(const YearInt,MontInt:Word):byte;
begin{返回指定年月的天数}
case MontInt of
1,3,5,7,8,10,12: Result:=31;
4,6,9,11: Result:=30;
2: case IsLeapYear(YearInt) of
true: Result:=29; {闰年}
else Result:=28;
end;
else Result:=0;
end;
end;

function DateNew(
const Dateset:string;
const yearSet,montSet,daysSet:integer):string;
var
intYear,intMont,intDays,intTemp :word;
begin{旧日期加日期得到新日期}
try
decodeDate(strtoDate(Dateset)+daysSet, intYear,intMont,intDays);
intYear:=((intMont +montSet-1) div 12) +intYear +yearSet;
intMont:=((intMont +montSet-1) mod 12) +1;
intTemp:= MonthDays(intYear, intMont);
if(intTemp < intDays) then
begin
inc(intMont);
intYear := intYear +integer(intMont>12);
intMont :=((intMont -1) mod 12) +1;
intDays :=((intDays -1) mod intTemp) +1;
end;
result := datetostr(encodeDate(intYear, intMont, intDays));
except
result := Dateset;
end;
end;
 
SQL语句:
Select DATEADD(MM,N,getDate()) --N表示月份差 MM表示取值的单位,这里为月
 
接受答案了.
 

Similar threads

S
回复
0
查看
742
SUNSTONE的Delphi笔记
S
S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
后退
顶部