CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

怎么判断输入给 edit 框的内容是不是日期型的。

楼主kunsl(kunsl)2004-12-01 13:49:05 在 Delphi / 语言基础/算法/系统设计 提问

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

相关问题

  • 如何判断输入的日期的合法性?
  • 怎样根据输入日期来判断是星期几~``?
  • 怎样根据输入日期来判断是星期几~``?
  • 如何在客户端判断客户输入的是日期
  • 如何判断输入的日期是否合法?
  • JS判断输入日期的正确性
  • 怎么样判断所输入的日期值
  • 判断输入是否是日期型,在后台如何写?
  • 怎么判断输入的日期是否正确?
  • 怎样判断textBox里输入的日期格式正确?

关键词

  • strv
  • dstr
  • datestr
  • itemp
  • prtsymbol
  • 日期
  • strtodatetime
  • showmessage
  • ifstr
  • edit

得分解答快速导航

  • 帖主:kunsl
  • vfork
  • gxgyj
  • meiqingsong
  • meiqingsong
  • meiqingsong
  • ksaiy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo