incmonth函数碰到2009-02-28!
把时间调到2009-02-28然后执行
procedure TForm1.Button1Click(Sender: TObject);VAR T: TDateTime;S:STRING;beginT:=incMonth(NOW(),1);S:=DATETOSTR(T);end;
procedure TForm1.Button1Click(Sender: TObject);VAR T: TDateTime; S:STRING;begin T:=incMonth(NOW(),1); if (MonthOfTheYear(now)=2) and (dayoftheMonth(now)=28) then T:= incDay(T,3); S:=DATETOSTR(T);end;
[解决办法]
1,2楼正解
VAR
T: TDateTime;
S:STRING;
begin
T:=incMonth(NOW(),1);
if (MonthOfTheYear(now)=2) and (dayoftheMonth(now)=28) then //判断是2月并且是28天,如果是29天的话同样这样判断,下面的T:=incDay(T,2)
T:= incDay(T,3);
S:=DATETOSTR(T);
end;
[解决办法]
var dt: TDateTime;begin dt := RecodeDate(dt,2009,2,28); dt := IncMonth(dt); [color=#FF0000]dt := EndOfTheMonth(dt);[/color] ShowMessage(DateToStr(dt));end;
[解决办法]
var
dt: TDateTime;
begin
dt := RecodeDate(dt,2009,2,28);
dt := IncMonth(dt);
dt := EndOfTheMonth(dt);
ShowMessage(DateToStr(dt));
end;