在日期时间列表中查找最接近的日期

时间:2015-02-08 08:05:04

标签: c# asp.net date datetime

我一直在使用此代码在输入日期之前的列表中查找最接近的日期。但是,当输入日期与列表中的第一个日期相同时,我最近发现一个错误导致代码崩溃。

allDates是日期列表,例如。 2015年1月1日,2015年5月1日,2015年10月1日

inputDate是用户选择的日期

var closestDate = allDates.Where(x => x < inputDate).DefaultIfEmpty().Max();

当我尝试选择列表中的第一个日期时,例如,2015年1月1日,最近的日期为空

此外,如果我在列表中选择一个日期,例如,如果列表包含2015年5月1日并且我选择2015年5月1日,则它不会选择2015年5月1日,而是选择之前的日期。列表,现在我通过将列表日期中的所有日期减少1

来做一个肮脏的解决方法

1 个答案:

答案 0 :(得分:0)

要解决第二个问题,请使用<=代替<a

var closestDate = allDates
  .Where(x => x <= inputDate)
  .DefaultIfEmpty()
  .Max();

第一个问题可能是无效的inputDate吗?