我有一份包含日期的记录列表。我希望按月和年份对此列表进行分组,例如,我的日期范围可以从2012年10月到2013年3月,2013年4月到2013年9月,然后是2013年10月到2014年3月,最后到2014年3月到2014年9月< / p>
所以id希望数据分为4组,每组超过6个月 所以 2012年10月 - 2013年3月 2013年4月 - 2013年9月 2013年10月 - 2014年3月 2014年4月 - 2014年9月
我已经想出如何分组一个月的范围,但我无法弄清楚如何包括一年(我目前得到2组),继续我到目前为止
var season = List.GroupBy(item =&gt;((item.StartDate.Month - 1)/ 6));
答案 0 :(得分:0)
您可以逐年分组,然后按月使用您的灌浆
var season = List.GroupBy(item => new { item.StartDate.Year, month = ((item.StartDate.Month - 1) / 6)});
或者您可以为
等值使用组合标记var season = List.GroupBy(item => item.StartDate.Year.ToString() + ((item.StartDate.Month - 1) / 6).ToString());
答案 1 :(得分:0)
计算总月数是要走的路
.GroupBy(item => (item.StartDate.Year * 12 + item.StartDate.Month + 2) / 6))