获取当前日历月和接下来11个月的日期

本文关键字:11个 日期 接下来 日历 获取 | 更新日期: 2023-09-27 18:29:19

我有一个IEnumerable<DateTime>。我想调出当前日历月中发生的所有日期,即使它们已经过去,也要调出接下来11个日历月中的所有日期。我将显示按月份分组的日期,从最近的开始。例如:

当前日期-2012年3月12日

  • 2012年3月
    • 3月3日-活动1
    • 3月15日-活动2
    • 3月30日-活动3
  • 2013年2月
    • 2月3日-事件156
    • 2月13日-事件157
    • 2月20日-事件158

我已经知道如何做分组部分了。您将如何使用linq和C#完成日期筛选?

获取当前日历月和接下来11个月的日期

这样的东西应该可以工作。您首先确定日期的合法范围,然后筛选出该范围之外的任何日期,最后按月份对其进行分组。

我手工编写了以下代码,您可能需要对其进行调整:

var acceptableFirstDate = DateTime.Today;
if (DateTime.Today.Day > 1)
{
    acceptableFirstDate = DateTime.Today.AddDays(-DateTime.Today.Day + 1);
}
var acceptableLastDate = acceptableFirstDate.AddMonths(12).AddDays(-1);
var result = dates
    .Where(x => x >= acceptableFirstDate && x <= acceptableLastDate)
    .GroupBy(x => x.Month);

我希望这能有所帮助!