将两个日历日期相互比较

时间:2015-04-16 11:59:21

标签: c# asp.net calendar

我们一直试图弄清楚如何在C#ASP.NET中比较两个日历日期。

我们遇到的问题是,当客户使用日历时,他们可以选择及时将其设置回来。

示例:

2015-09-23 to 2015-08-23< - 这是我们不想要的,它会及时回归。

我们如何检查开始日期是否晚于结束日期 我们看到有人使用CDate?我们不明白如何使用它。
我们试图从字符串中删除“ - ”,将其转换为int,然后计算答案是否小于0.

但这是一个很大的解决方法。是否有官方或更好的方式来做到这一点?

如果需要更多信息,请随时提问!

2 个答案:

答案 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;
    }

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