【发布时间】:2015-01-28 11:47:08
【问题描述】:
我有场景用户将输入开始日期和结束日期。我列出了该日期范围之间的DateTime。
现在我有DateTime 的列表,假设从本月 1 日到本月 30 日,我想在结果集中获取每周的开始和结束日期,例如:
WeekStartDate WeekEndDate
01/01/2015 04/01/2015
05/01/2015 11/01/2015
我已经尝试使用 linq 来获得所需的结果,但我无法获得所需的输出,这是我的尝试:
var dating = from d in dates
group d by new { d.Day, d.DayOfWeek,d.Date } into g
where g.Key.DayOfWeek == DayOfWeek.Monday || g.Key.DayOfWeek == DayOfWeek.Sunday
select g;
编辑:
我现在能够获得周组合,但它没有完成,因为它错过了周一检查的第一周,因为第一个日期可能不是周一:
var dating = from d in dates
let NextWeekDate = d.Date.AddDays(6)
group d by new { d.Day, d.DayOfWeek, d.Date, NextWeekDate } into g
where g.Key.DayOfWeek == DayOfWeek.Monday
select new {
StartWeekDate = g.Key.Date,
EndWeekDate = g.Key.NextWeekDate
};
【问题讨论】:
-
如果我错了,请纠正我 - 您希望结果包含 1. 本月的第一个日期 2. 所有星期日结束时间 3. 所有星期一开始时间。我说的对吗?
-
@MotiAzu 我想他希望每个星期的开始和结束日期都是一对。所以结果应该是这些对的列表。
-
@Selman22 我认为你是对的,有道理。
-
@Selman22 你没看错,我需要给定日期范围内每周的开始和结束日期
-
21k 你应该知道这个网站是如何工作的。将您的解决方案作为答案,而不是编辑到问题中,并且不要将
[Solved]编辑到您的标题中。