我有一个关于如何找到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
现在,我会让输出向用户建议与他的输入相关的最近时间。
答案 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();