我正在寻找一种方法来从最接近当前时间的时间跨度集合中获取时间跨度。Atm我有以下代码:var closestTime= timespanCollection.OrderBy(t => Math.Abs((t - DateTime.Now.TimeOfDay).Ticks)).First();问题是,当时间例如为11:02且时间为11:00时,它将作为最接近的时间,但是我只希望将来的时间。我正在像一个foreach循环那样猜测,这样做的快速方法是什么?
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
您应该Where用来获取未来的时间跨度。您也可以使用TimeSpan.Duration代替Math.Abs:
TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan closestTime = timespanCollection
.Where(ts => ts > now)
.OrderBy(ts => (ts - now).Duration())
.First();
- 1 回答
- 0 关注
- 147 浏览
添加回答
举报
0/150
提交
取消