输入时间与DateTimes列表之间的最近距离

时间:2017-03-08 14:40:19

标签: c# datetime time

我有一个关于如何找到DateTimes列表和输入时间之间最近时间的问题。

特别是,我有:

List<DateTime> logTimes; // that contain all time read from a log file
int number = logTimes.Count; //array lenght

TimeSpan A = enteredDateFirst.TimeOfDay; //input time by user

现在,我会让输出向用户建议与他的输入相关的最近时间。

1 个答案:

答案 0 :(得分:2)

您可以使用TimeSpan和LINQ:

Duration方法
DateTime nearestTime = logTimes
    .OrderBy(dt => (dt.TimeOfDay - enteredDateFirst.TimeOfDay).Duration())
    .First();

这将返回DateTime TimeOfDay属性最接近给定时间。当然,这种方法忽略了日期部分。如果您想查找最近的DateTime

DateTime nearestDateTime = logTimes
    .OrderBy(dt => (dt - enteredDateFirst).Duration())
    .First();