好的,这是一个混乱的查询,我只取得了有限的成功。我有一个包含 datetime 属性和其他数据的 Foo 类的列表。我几乎每分钟都有一堂课/一排,有些缺课,有些缺课,比如假期或周末。我的目标是每天对从开始时间到结束时间的所有行进行分组。
所以在某些日子里,我的开始时间可能是上午 9:30,结束时间可能是下午 3:00。这种情况我通过以下方式处理:
DateTime sd = new DateTime(2000, 1, 1, 9, 30, 0);
DateTime ed = new DateTime(2000, 1, 1, 15, 0, 0);
var z = Foos.Where(a=> a.FooDate.TimeOfDay >= sd.TimeOfDay &&
a.FooDate.TimeOfDay < ed.TimeOfDay)
.GroupBy(a=>a.FooDate.Date);
这工作正常。我的问题是有时我的开始时间是晚上 9 点,结束时间是早上 6 点。在那种情况下,我希望这组 foos 过夜,如果晚上 9 点是星期五,并且直到下一个星期一之前没有行,我希望该组跨越周末。我什至会很高兴提出一个查询的建议,该查询总是会转到第二天。
我希望那很清楚并欣赏任何想法。我尝试了很多其他方法来使用循环并创建另一个不同日期的列表等,但对此并不满意。