为了账号安全,请及时绑定邮箱和手机立即绑定

从集合中获取最接近TimeOfDay的时间跨度

从集合中获取最接近TimeOfDay的时间跨度

C#
交互式爱情 2021-05-18 18:10:49
我正在寻找一种方法来从最接近当前时间的时间跨度集合中获取时间跨度。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();


查看完整回答
反对 回复 2021-05-23
  • 1 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信