将年份和适当的月份和日期组合成一个日期,将它保护在try...except中看行不行?

解决方案 »

  1.   

    将年份和适当的月份和日期组合成一个日期,将它保护在try...catch中看行不行?
      

  2.   

    那得看你的程序中对“有效年份”是怎么约定的,假定以1990年到今年为有效年份,则可以这样:try
    {
       int year=Convert.ToInt32(TextBox1.Text);
       if (year>=1990 && year<=System.DateTime.Now.Year)
       {
           //有效年份
       }
       else
       {
          //无效年份
        }
    }
    catch
    {
       //输入的不是合法的年份值;
    }
      

  3.   


    function IsDate(str)
    {
    var re=/^(\d{4})-(\d{1,2})-(\d{1,2})$/
    if(!re.test(str))return false;
    var r=str.match(re)
    var d=new Date(r[1],r[2]-1,r[3])
    return d.getFullYear()==r[1] && d.getMonth()==r[2]-1 && d.getDate()==r[3]
    }
    alert(IsDate("2003-10-4"))
      

  4.   

    有效年份是什么意思?假如你只允许用户输入1900到2100之间的年份,可以在客户端用Javascript来判断,象这样:
    if(textbox1.value>2100||textbox1.value<1900){
    alert("年份无效!");
    return false;
    }
    在服务器端,可以把输入的值转换成int类型然后用同样的方法验证。
      

  5.   

    加上一个月份和日期,再用 ISDATE判断
      

  6.   

    http://expert.csdn.net/Expert/topic/2307/2307866.xml?temp=.9739649
      

  7.   

    ^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$ 
    dd/MM/yyyy with leap years 100% integrated Valid years : from 1600 to 9999 As usual, many tests have been made. I think this one should be fine.
      

  8.   

    还可以用Calade控件让用户通过选择时间来输入,就不用判断了
      

  9.   

    用正则表达式
    Regex.IsMatch( string )
      

  10.   

    可以如下:
    if not isdate(textbox1.text) then
         response.write("<script>alert('日期格式错误!')</script>")
         exit sub
    end if
      

  11.   

    最好是用正则表达式在MSDN里可以找到所有的用法