C#比较两个DateTimes

时间:2014-03-21 16:56:27

标签: c# datetime

我有两个日期:

DateTime date_of_submission = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"));
DateTime _effective_date = Convert.ToDateTime(TextBox32.Text);

现在,自提交之日起,生效日期不得超过90天。

我该如何进行比较?

我想到的一种方法是将天数转换为字符串,然后比较dd,mm,yyyy并查看两个日期是否在90天之内。但我相信必须有一个更好的解决方案。

6 个答案:

答案 0 :(得分:24)

您可以减去两个日期,然后获得TimeSpan

TimeSpan difference = _effective_date - date_of_submission;
if(difference.TotalDays > 90)
{
  // Bingo!
}

答案 1 :(得分:4)

var days = (_effective_date - date_of_submission).Days;

答案 2 :(得分:3)

像...一样的东西。

        TimeSpan difference = _effective_date - date_of_submission;
        double days = difference.TotalDays;

        if (days > 0 && days <= 90)
        {
            //valid
        }

答案 3 :(得分:1)

您可以正常比较两个日期时间值。

因此,您可以执行以下操作: -

if(date_of_effective_date.CompareTo(date_of_submission_date.AddDays(90)) <= 0)
{
 //Correct
}

答案 4 :(得分:0)

这是比较日期时间的示例。你可以根据你的要求改变

 DateTime dtFromDate = DateTime.ParseExact(TextBoxFromDate.Text, "dd/MM/yyyy",
                                                   CultureInfo.InvariantCulture);
 DateTime dtToDate = DateTime.ParseExact(TextBoxToDate.Text, "dd/MM/yyyy",
                                                   CultureInfo.InvariantCulture);
 TimeSpan difference = dtFromDate - dtToDate;
 double days = difference.TotalDays;

 if (days > 0)
 {
   DivFormError.InnerText = "“From Date” cannot be greater than “To Date”";
 }

答案 5 :(得分:0)

虽然有几种有效的解决方案,但它可能是未来搜索者的一种

DateTime date_of_submission = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"));
DateTime _effective_date = Convert.ToDateTime(TextBox32.Text);

DateTime lastPossibleEffectiveDate = _effective_date.AddDays(90);

int result = DateTime.Compare(_effective_date,lastPossibleEffectiveDate);
if (result <= 0)
    Console.WriteLine("Valid Date");
else if (result > 0 )
    Console.WriteLine("Not Valid effective date");