gpt4 book ai didi

c# - 按季度计算日期集合的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 21:37:57 25 4
gpt4 key购买 nike

我有一个日期集合:

 IEnumerable<DateTime> Events;

我想计算并划分为几个季度(2011 年第一季度、2011 年第二季度等),其中每个季度代表三个月的时间段。

我开始使用循环和单独的字典“手动”执行此操作,但我认为可能有一种更优雅的方式使用 LINQ 等来执行此转换。

我希望最终得到一个如下所示的数据结构:

 public List<QuarterInfo> QuarterBreakdown

其中 QuarterInfo 很简单:

 public class QuarterInfo
{
public int QuarterOfYear; //1, 2, 3 or 4
public int Year;
public IEnumerable<DateTime> Events;
}

请注意,以上是我的想法,但我非常愿意接受有关实现此目标的其他方法的建议。

最佳答案

纯 LINQ,使用 GroupBy:

var result = Events
.Select(d => new { DateTime = d, Q = (d.Month - 1) / 3 })
.GroupBy(a => new { a.Q, a.DateTime.Year })
.Select(a => new QuarterInfo
{
Events = a.Select(s => s.DateTime),
QuarterOfYear = a.Key.Q + 1
});

关于c# - 按季度计算日期集合的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com