C#比较两个DateTimes

我有两个约会:

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

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

我怎么做这个比较?

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

您可以减去两个日期,并获得TimeSpan :

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

就像是…

  TimeSpan difference = _effective_date - date_of_submission; double days = difference.TotalDays; if (days > 0 && days <= 90) { //valid } 

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

所以,你可以做到以下几点: –

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

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

  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”"; } 

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

 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");