我努力让自己的小功能发挥作用。
我想做的事情:
我有一个解析日期时间的ObservableCollection,如
{"13:00","14:00,"17:00","22:00","22:00"}
我希望最接近的时间大于当前的DateTime.Now。
代码:
private DateTime GetNearestTime() {
var nearestTime= (from x in TimeCollection
where x.MyTimeProperty.Ticks > DateTime.Now.Ticks
orderby x.MyTimeProperty.Ticks ascending
select x).First();
return nearestTime;
}
我得到的是1值大于预期值。
编辑:
值以便更好地理解
var now = DateTime.Now.TimeOfDay // {18:32:35.4378850}
集合中的DateTime.TimeOfDay值。
[0:] 03:03:00
[0:] 05:03:00
[0:] 13:01:00
[0:] 17:16:00
[0:] 17:16:00
[0:] 23:01:00
该集合的类型为:
public class TimeData
{
public DateTime MyTimeProperty {get;set;}
}
答案 0 :(得分:3)
如果您不关心日期部分,那么TimeOfDay
是适当比较的属性:
private DateTime GetNearestTime()
{
var now = DateTime.Now.TimeOfDay;
var nearestTime= (from x in TimeCollection
where x.MyTimeProperty.TimeOfDay > now
orderby x.MyTimeProperty.TimeOfDay ascending
select x).First();
return nearestTime;
}
Ticks
属性记录为:
此属性的值表示自公元1月1日午夜12:00:00(公历1月1日0:00:00到公历)以来经过的100纳秒间隔的数量,代表DateTime.MinValue。它不包括可归因于闰秒的刻度数。