incmonth函数碰到2009-02-28!解决思路
incmonth函数碰到2009-02-28!
把时间调到2009-02-28然后执行
发现S='2009-03-28',而不是我要的2009-03-31,怎么解决?其他日期好像没有问题,就这个日期有问题![color=#FF0000][/color]
------解决方案--------------------
把时间调到2009-02-28然后执行
- Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject); VAR T: TDateTime; S:STRING; begin T:=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;