delphi 判断输入的日期格式

delphi中excel数据导入数据库其中excel日期字段要求必须是'2012-03'这种格式,(即只取年月相当于判断一个字符串)否则提示日期格式不正确怎么实现?... delphi 中excel数据导入数据库 其中excel日期字段要求必须是'2012-03'这种格式,( 即只取年月相当于判断一个字符串) 否则提示日期格式不正确 怎么实现? 展开
 我来答
HJ_3000
2012-03-14 · TA获得超过563个赞
知道小有建树答主
回答量:1264
采纳率:78%
帮助的人:54.4万
展开全部
Function IsMyDateFormat(aStr: String): Boolean;

Function IsMyYear(I: Integer): Boolean;
Begin
Result := (I > 1990) And (I < 2099); //自己定义年的范围
End;

Function IsMyMonth(I: Integer): Boolean;
Begin
Result := (I > 0) And (I < 13);
End;

Var
alist: TStringList;
sYY, sMM: String;
iYY, iMM: Integer;
Begin
Result := False;
If Length(aStr) = 7 Then
Begin
alist := TStringList.Create;
Try
alist.Delimiter := '-';
alist.DelimitedText := aStr;
If alist.Count = 2 Then
Begin
sYY := alist[0];
sMM := alist[1];
If (Length(sYY) = 4) And
(Length(sMM) = 2) And
(TryStrToInt(sYY, iYY)) And
(TryStrToInt(sMM, iMM)) And
IsMyYear(iYY) And
IsMyMonth(iMM) Then
Begin
Result := True;
End;
End;
Finally
alist.Clear;
alist.Free;
End;
End;
End;

Procedure TForm1.BitBtn1Click(Sender: TObject);
Var
S: String;
Begin
S := '2012-12';
If Not IsMyDateFormat(S) Then
Begin
Application.MessageBox(Pchar(Format('错误的日期格式:%s', [S])), 'msg', 64);
End;
End;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2089d6f25
2012-03-15
知道答主
回答量:51
采纳率:75%
帮助的人:9.4万
展开全部
if (StrToDateDef(s+'-01', 0) = 0) then
showmessage('日期格式不正确');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu55721
2012-03-15 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:874万
展开全部
搞的太复杂了,定义一字符型变量,把日期串赋值给它,再用一个for循环,逐字检测字符串中的“-”个数就行了,如果超过1个,就给提示,最多好用不了五行代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0c098a9b0
2012-03-14 · TA获得超过167个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:322万
展开全部
比较呆板的办法
try
if strtoint(copy(s,1,4)) and length(copy(s,1,4)) =4 and
copy(s,5,1)='-' and
strtoint(copy(s,6,2)) and length(copy(s,1,4)) =2
else
showmessage('日期格式不正确')
except
showmessage('日期格式不正确')
end;
追问
copy(s,5,1)='-'   这个怎么编译不过去?
追答
忘了  你得将 copy(s,5,1)='-' 这个括起来 (copy(s,5,1)='-')
if语句多个条件 要拿括号 括的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式