我之前问过这个问题来收集日期时间对象并按 dayOfweek 和 time 对它们进行分组
所以只是回顾一下:我收集了 DateTime
List<DateTime> collectionOfDateTime = GetDateColletion();
然后按 dayofWeek 和一天中的时间分组
var byDayOfWeek = collectionOfDateTime.GroupBy(dt => dt.DayOfWeek + "-" + dt.Hour + "-" + dt.Minute);
所以在这一点上,我将这些按周(一致的时间)分组,效果很好。
我现在有一个按月而不是按周分组的新要求。当我说“月”时,它不是一个月中的同一天,而是类似于“每个月的第一个星期二”
我试图找出在一个组中使用什么“键”来分组符合每月逻辑的所有项目(每月的第一个星期二,每个月的第二个星期五等)
例如,假设我有这些日期开始;
var date1 = new DateTime(2013, 1, 4).AddHours(8); // This is the first Friday in Jan
var date2 = new DateTime(2013, 2, 1).AddHours(8); // This is the first Friday in Feb
var date3 = new DateTime(2013, 1, 5).AddHours(3); // This is the first Sat in Jan
var date4 = new DateTime(2013, 2, 2).AddHours(3); // This is the first Sat in Feb
var date5 = new DateTime(2013, 2, 2).AddHours(6); // This is the first Sat in Feb - different time
如果这些是进入原始数组的日期,我需要一个 groupby 来结束 3 个组。
- 第一组将包含 date1 和 date2
- 第二组将包含 date3 和 date4。
- date5 将是独立的,因为它与不同时间的任何其他组都不匹配
任何人都可以建议按照该标准进行分组吗?