StrToDateTime函数的错误 ( 积分: 50 )

  • 主题发起人 主题发起人 eastwood1976
  • 开始时间 开始时间
E

eastwood1976

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是我的代码:
ss1:=inttostr(yy)+'-'+inttostr(mm)+'-1 0:00:00';
dd1:=strtodatetime(ss1);
if mm=12 then
ss1:=inttostr(yy+1)+'-1-1 00:00:00'
else
ss1:=inttostr(yy)+'-'+inttostr(mm+1)+'-1 0:00:01';
dd2:=strtodatetime(ss1); //}
结果dd1=0而dd2却有正确的值
哪位大虾为我指点迷津,50分
 
以下是我的代码:
ss1:=inttostr(yy)+'-'+inttostr(mm)+'-1 0:00:00';
dd1:=strtodatetime(ss1);
if mm=12 then
ss1:=inttostr(yy+1)+'-1-1 00:00:00'
else
ss1:=inttostr(yy)+'-'+inttostr(mm+1)+'-1 0:00:01';
dd2:=strtodatetime(ss1); //}
结果dd1=0而dd2却有正确的值
哪位大虾为我指点迷津,50分
 
呵呵,除非 mm=0,否则就太怪了
 
//测试通过
procedure TForm1.Button1Click(Sender: TObject);
var
d : TDatetime;
begin
Edit1.Text := '2005-1-1 0:00:00';
d := StrToDatetime(Edit1.Text);
Edit2.Text := FormatDatetime('YYYY-MM-DD HH:NN:SS', d);
end;
 
你可以用IncMonth函数实现 月份+1

function IncMonth(const Date: TDateTime; NumberOfMonths: Integer = 1): TDateTime; // uses SysUtils
 
问题就在这里
yy=2005
mm=11
这时候出错了
 
//测试通过
procedure TForm1.Button1Click(Sender: TObject);
var
yy, mm : Word;
d : TDateTime;
begin
yy := 2005; mm := 11;
Edit1.Text := IntToStr(yy)+'-'+IntToStr(mm)+'-1 0:00:00';
d := StrToDateTime(Edit1.Text);
Edit2.Text := FormatDateTime('YYYY-MM-DD HH:NN:SS', d);
end;
 
多谢大家了
我把变量改了个名字,问题解决了,真奇怪
我可用的是正版Delphi7
 
问题的根源还没有找到,就到此告一段落吧
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
I
回复
0
查看
876
import
I
后退
顶部