将两个日历日期相互比较



我们一直在尝试弄清楚如何在 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;
    }

显然,您可能希望添加一些验证和/或异常处理来处理无效的输入字符串。

最新更新