【问题标题】:C# Group a date range in parts according to a specific number of daysC#根据特定天数将日期范围分组
【发布时间】:2021-10-21 07:04:56
【问题描述】:

我有一个日期列表:

2021/09/01
2021/09/02
2021/09/03
2021/09/04
2021/09/05
2021/09/06
2021/09/07
2021/09/08
2021/09/09
......

2021/09/29

如何将日期范围分组为 7 天?:

2021/09/01
2021/09/02
2021/09/03
2021/09/04
2021/09/05
2021/09/06
2021/09/07

2021/09/08
2021/09/09
2021/09/10
2021/09/11
2021/09/12
2021/09/13
2021/09/14

....

【问题讨论】:

  • 你能发布任何初步尝试吗?
  • this answer 能帮到你吗?
  • 日期列表会不会有间隔?
  • @Markus 是的,列表中会有空白
  • 您想如何处理月份之间的过渡?

标签: c# datetime


【解决方案1】:

如果您的数据可能包含一个日期的间隙或多个条目,您可以计算与最小日期的差异并将其用于分组,例如:

if (dates.Any()) // Min() will fail if there are no dates
{
  var minDate = dates.Min(x => x);
  var interval = 7d;
  var groups = from x in dates 
               group x by x.Subtract(minDate).TotalDays / interval 
               into g 
               select g;
}

以上示例可以作为指导;您可能需要根据您的数据结构和要求对其进行调整。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多