怎么判断输入给 edit 框的内容是不是日期型的。
RT 问题点数:50、回复次数:20Top
1 楼vfork(學習htm、css、js、java,然後到ajax。)回复于 2004-12-01 13:52:03 得分 5
直接用datetimepicker就是的。Top
2 楼gxgyj(杰克逊)回复于 2004-12-01 13:54:15 得分 5
var
temp:Tdatetime;
try
temp:=strtodatetime(edit1.text)
except
showmessage('convert error')
end;Top
3 楼meiqingsong(阿飛)回复于 2004-12-01 13:54:51 得分 5
var
date: TDatetime;
if (TryStrToDate(Edit1.Text,date) then
...Top
4 楼CloneCenter(复制中心)回复于 2004-12-01 13:59:18 得分 0
大家说的都可以。Top
5 楼bee2518(迷茫ing)回复于 2004-12-01 14:17:27 得分 0
try
strtodatetime(edit1.text)
except
showmessage('错误')
end;Top
6 楼kunsl(kunsl)回复于 2004-12-01 14:29:06 得分 0
弱弱的问一下:datetimepicker 在那?
to gxgyj(杰克.逊) and meiqingsong(阿飛)
你们的方法不能正确的判断出 12-0 或 2004.12.1
是否正确。Top
7 楼kunsl(kunsl)回复于 2004-12-01 14:33:16 得分 0
更正:是不能判断 12 或 2004.12.1Top
8 楼bigben2008(ben)回复于 2004-12-01 14:40:27 得分 0
function IsDateTime(DateStr: String): Boolean;
begin
try
strtodatetime(DateStr);
result := True;
except
result := False;
end;
end;
Top
9 楼meiqingsong(阿飛)回复于 2004-12-01 14:59:43 得分 5
你要用'.'做分隔符的话
需要将DateSeparator := '.';
默认的日期分隔符好像是‘-’Top
10 楼kunsl(kunsl)回复于 2004-12-01 15:01:39 得分 0
To meiqingsong(阿飛)
能不能做到 . 和 - 或 / 都支持呢?Top
11 楼kunsl(kunsl)回复于 2004-12-01 15:03:06 得分 0
难道真要自己写一个函数?Top
12 楼meiqingsong(阿飛)回复于 2004-12-01 15:11:31 得分 5
你在转之前用
StringReplace(Edit1.text, '.', '-', [rfReplaceAll])
将Edit1.text中的 '.'全部用‘-'代替不就可以了Top
13 楼shunbing()回复于 2004-12-01 15:18:42 得分 0
try
strtodatetime(edit1.text)
except
showmessage('非法日期!')
end;Top
14 楼pl5th2001(白牙)回复于 2004-12-01 16:35:49 得分 0
用strtodatetime()转换,出错了就不是日期型的Top
15 楼whythinkwhy(小生)回复于 2004-12-01 17:16:55 得分 0
建议直接用datetimepicker
位置
控件面板--->win32----datetimepickerTop
16 楼ksaiy(阳光总在风雨后)回复于 2004-12-01 20:42:45 得分 25
function PartitionString(StrV,PrtSymbol: string): TStringList;
var
iTemp: integer;
begin
result := TStringList.Create;
iTemp := pos(PrtSymbol,StrV);
while iTemp>0 do begin
if iTemp>1 then result.Append(copy(StrV,1,iTemp-1));
delete(StrV,1,iTemp+length(PrtSymbol)-1);
iTemp := pos(PrtSymbol,StrV);
end;
if Strv<>'' then result.Append(StrV);
end;
function StrDate(Str,DStr:String):String;
var
BStr:TStrings;
begin
BStr:=PartitionString(Str,DStr);
if BStr.Count=3 then
Result:=BStr[0]+'-'+BStr[1]+'-'+BStr[2]
else
Result:='无效日期!';
end;
function IfStr(DateStr:String):Boolean;
var
DStr:String;
begin
if Pos('/',DateStr)>0 then
DStr:=StrDate(DateStr,'/');
if Pos('.',DateStr)>0 then
DStr:=StrDate(DateStr,'.');
if Pos('-',DateStr)>0 then
DStr:=DateStr;
try
StrToDate(DStr);
Result := True;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if IFStr('2004/4/20') then
ShowMessage('为有效日期!');
if IFStr('2004.4.20') then
ShowMessage('为有效日期!');
if IFStr('2004-4-20') then
ShowMessage('为有效日期!');
end;
Top
17 楼ksaiy(阳光总在风雨后)回复于 2004-12-01 20:43:11 得分 0
给你写了一个函数,具体的其它符号你自己修改就可以了。Top
18 楼anbangs(大邦)回复于 2004-12-01 22:00:54 得分 0
function isDate(str:string):Boolean;
begin
result:=true;
try
strTodate(str);
except
result:=false;
end;
end;
if isDate('123455') then
showmessage('是日期')
else
showmessage('不是');Top
19 楼tugang(认真的男人)回复于 2004-12-02 11:55:12 得分 0
学习!!Top
20 楼matt_zhang(开心小竹)回复于 2004-12-02 14:11:54 得分 0
if StrtoDatetimeDef(edit1.text,0)=0 then
showmessage('请输入正确的日期');Top




