怎样写一个函数判断一个字符串是否日期类型(如2003-10-20),如不是日期就返回一个
错误的信息,要用户再写正确后才能通过。请帮我写代码!

解决方案 »

  1.   

    你这样行不行:
    try
    StrToDate
    是日期
    except
    不是日期
    end;
      

  2.   

    Delphi本身就有判断字符串是否日期的函数:
      function TryStrToDate(const S: string; out Value: TDateTime): Boolean;
      function TryStrToTime(const S: string; out Value: TDateTime): Boolean;
      function TryStrToDateTime(const S: string; out Value: TDateTime): Boolean;同理,也有判断字符串是否为整数、实数等的函数,自己研究吧!怎么样,解决了吧?!
      

  3.   

    function checkdatatime(inputstring:string):string;
    var
    temp:Tdatetime;
    begin
       result:='';
       try
            temp:=strtodatetime(inputstring);
       except
            result:='这不是有效的日期类型';
       end;
    end;
    //正确返回空字符窜
      

  4.   

    同意楼上的!!!!
    function iddate(str:string):boolean;
     begin
       try
         strtodate(str);
         result:=true;
       except
         result:=false;
       end;
     end;
      

  5.   

    function isdate(maskedit: string):Boolean;
    var
        i:integer;
    begin
    for i:=1 to 10 do
        if  (i<>5) and (i<>8) then
             begin
                if  not(maskedit[i] in ['0'..'9']) then
                begin
                    delete(maskedit,i,1);
                    insert('0',maskedit,i);
                end;
             end;
    Result :=IsValidDate(StrToint(MidStr(maskedit,1,4)),StrToint(MidStr(maskedit,6,2)),StrToint(MidStr(maskedit,9,2)));
    end;