微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何验证日期不是.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; 
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。