繁体   English   中英

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

[英]Finding closest date in a datetime list

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

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

inputDate是用户选择的日期

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

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

同样现在,如果我在列表中选择一个日期,例如,如果列表中包含5/1/2015,而我选择5/1/2015,则不会选择5/1/2015,而是选择列表中的较早日期,对现在我通过将列表日期中的所有日期都减少1来进行肮脏的解决

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM