如何解决如何验证日期不是.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 举报,一经查实,本站将立刻删除。