我们一直在尝试弄清楚如何在 C# ASP.NET 中比较两个日历日期。
我们遇到的问题是,当客户使用日历时,他们可以选择及时设置日历。
例:
2015-09-23 to 2015-08-23
<-这是我们不想要的,它被及时推迟了。
我们如何检查开始日期是否晚于结束日期。
我们看到有人使用CDate吗?我们不明白如何使用它。
我们尝试从字符串中删除"-",将其转换为 int,然后计算答案是否小于 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
}
很简单。我假设它只是您感兴趣的日期部分,而不是时间。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;
}
显然,您可能希望添加一些验证和/或异常处理来处理无效的输入字符串。