我们一直试图弄清楚如何在C#ASP.NET中比较两个日历日期。
我们遇到的问题是,当客户使用日历时,他们可以选择及时将其设置回来。
示例:
2015-09-23 to 2015-08-23
< - 这是我们不想要的,它会及时回归。
我们如何检查开始日期是否晚于结束日期
我们看到有人使用CDate?我们不明白如何使用它。
我们试图从字符串中删除“ - ”,将其转换为int,然后计算答案是否小于0.
但这是一个很大的解决方法。是否有官方或更好的方式来做到这一点?
如果需要更多信息,请随时提问!
答案 0 :(得分:0)
您可以使用ASP.Net中的CompareValidator
<asp:CompareValidator ID="myID" ControlToCompare="StartDate"
ControlToValidate="EndDate" Type="Date" Operator="GreaterThanEqual"
ErrorMessage="The dates are not correct." runat="server"></asp:CompareValidator>
或者
DateTime d1 = new DateTime(2015, 9, 1);
DateTime d2 = new DateTime(2015, 8, 2);
if (d1 < d2)
{
//error
}
答案 1 :(得分:0)
够容易。我假设它只是你感兴趣的日期部分,而不是时间。 DateTime.CompareTo()方法比较两个日期并返回以下整数值之一:
-1 Less Than
0 Equal To
1 Greater Than
使用此和当前日期,我们可以轻松判断给定日期是否已过去。此方法将采用日期字符串(如示例中提供的字符串),并将其与当前日期(忽略时间元素)进行比较,如果给定日期是过去,则返回true,如果等于或大于此值,则返回false比当前日期。
private bool IsDateInThePast(string inputDate)
{
DateTime dt = DateTime.Parse(inputDate);
return dt.CompareTo(DateTime.Parse(DateTime.Now.ToShortDateString())) < 0;
}
显然,您可能希望添加一些验证和/或异常处理来处理无效的输入字符串。