如何验证日期不是.net c#中的将来日期

问题描述

|| 只是徘徊,我如何验证日期不是.net c#中的将来日期。 例: 我已经在此处应用了所需字段验证的验证。但是以某种方式,我不知道如何应用验证来检查开始日期,以确保它不是将来的日期(日期不大于当前日期)?
  <tr>
        <td align=\"right\">Start Date:</td>
        <td><asp:TextBox runat=\"server\" ID=\"activeDate\" size=\"8\"/>(YYYY-MM-DD)
            <asp:requiredFieldValidator ID=\"reqvactiveDate\" runat=\"server\"
                 ControlTovalidate=\"activeDate\" display=\"Dynamic\" EnableClientScript=\"true\"
                 ErrorMessage=\"required\" />

        </td>
    </tr>
比我写下面的代码来尝试日期验证。日期验证似乎对我不起作用:(
    <tr>
        <td align=\"right\">Start Date:</td>
        <td><asp:TextBox runat=\"server\" ID=\"activeDate\" size=\"8\"/>(YYYY-MM-DD)
            <asp:requiredFieldValidator ID=\"reqvactiveDate\" runat=\"server\"
                 ControlTovalidate=\"activeDate\" display=\"Dynamic\" EnableClientScript=\"true\"
                 ErrorMessage=\"required\" />

            <asp:CustomValidator runat=\"server\"
                ID=\"valDaterange\" 
                ControlTovalidate=\"activeDate\"
                onservervalidate=\"valDaterange_ServerValidate\" 
                ErrorMessage=\"enter valid date\" />
        </td>
    </tr> 
后面的代码
   protected void valDaterange_ServerValidate(object source,ServerValidateEventArgs args)
   {
       DateTime minDate = DateTime.Parse(\"1000/12/28\");
       DateTime maxDate = DateTime.Parse(\"2011/05/26\");
       DateTime dt;

       args.IsValid = (DateTime.TryParse(args.Value,out dt)
                       && dt <= maxDate
                       && dt >= minDate);
   }
    

解决方法

DateTime实现一个IComparer接口。检查其是否大于DateTime.Now 没有理由解析它,只需执行以下操作:
if(datetime1>datetime2)
{
    ....
}
    ,我认为您会因为以下错误而遇到错误:
DateTime.Parse(\"1000/12/28\")
,而尝试try5ѭ。您还可以选择使用compareValidators。 另外,您有什么理由不只是在[您的日期]
<tr>
  <td align=\"right\">
    Start Date:
  </td>
  <td>
    <asp:TextBox runat=\"server\" ID=\"txtActiveDate\" size=\"8\"/>(YYYY-MM-DD)
    <!-- Validate if the entered date value is valid -->
    <asp:CompareValidator ID=\"cvIsActiveDateValid\" runat=\"server\"
     ControlToValidate=\"txtActiveDate\"
     ErrorMessage=\"Invalid Start Date\"
     Operator=\"DataTypeCheck\" 
     Type=\"Date\"></asp:CompareValidator>         
    <!-- Validate if the entered value is not future dated -->
    <asp:CompareValidator ID=\"cvIsActiveDateNotInFuture\" runat=\"server\" 
    ControlToValidate=\"txtActiveDate\" 
    ErrorMessage=\"Start Date cannot be a future date.\" 
    Operator=\"LessThanEqual\" 
    Type=\"Date\"></asp:CompareValidator>
  </td>
</tr>
ASPX.CS代码:
protected void Page_Load(object sender,EventArgs e)
{
  SetTodaysDateToCompareValidators();
  ...
}

protected void SetTodaysDateToCompareValidators()
{
  string defaultDateFormat = \"YYYY-MM-DD\";
  string today = DateTime.Today.ToString(defaultDateFormat);
  cvActiveDate.ValueToCompare = today; 
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...