读书人

incmonth函数碰到2009-02-28!解决思路

发布时间: 2012-02-24 16:30:39 作者: rapoo

incmonth函数碰到2009-02-28!
把时间调到2009-02-28然后执行

Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);VAR T:  TDateTime;S:STRING;beginT:=incMonth(NOW(),1);S:=DATETOSTR(T);end;


发现S='2009-03-28',而不是我要的2009-03-31,怎么解决?其他日期好像没有问题,就这个日期有问题![color=#FF0000][/color]

[解决办法]
Delphi(Pascal) code
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;

[解决办法]
Delphi(Pascal) code
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;

读书人网 >.NET

热点推荐