怎么判断用户输入的年月日是正确的(100分)

  • 主题发起人 主题发起人 苟延残喘
  • 开始时间 开始时间

苟延残喘

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么判断用户输入的年月日是正确的,具体情况如下:
三个EDIT框,分别代表年,月,日,
我的控制条件是当用户输入年月日以后,去判断它是否大于1900而且小于1979,而且还要
保证用户所输入年月日合法(既,闰年等等),着急,在线等候
 
为什么不用datetimepicker控件?
 
因为我不想让用户用鼠标
 
把他们组合成日期格式的字符串
使用异常处理把字符串转换成日期
如果出现异常则不合法
不出现异常则合法
判断边界时直接比较就行了
 
try
d:=strtodate(edit1.text+'/'+edit2.text+'/'+edit3.text); //d是一个日期变量
Except
Showmessage('错误')
end;
 
try
EncodeDate( strToInt(edit1.text),//year
strToInt(edit2.text),//month
strToInt(edit3.text));//day
showMessage('正确的日期');
except
showMessage('错误的日期');
end;
 
用delphi的maskedit控件限制
 
用异常处理比较好
 
不行呀,
出现了下面的错误:
project project1.exe raised exception class econverterror with message'invalid ar
gument to date encode'.
 
这就是异常啊
已经有了异常处理了
调试的时候会保这个错
运行可执行程序是没有这个问题的
 
好,好好,谢谢了,马上给各位家分,顺便问一下,日期类型是不是DATE
VAR
D:DATE;
这样定义行吗
 
var
d:TDateTime;
 
做函数判断比较好!
 
同意zhumoo,用mask
 
用maskedi控件,用日期转换函数
 
多人接受答案了。
 
后退
顶部