C# 如何获取两个日期之间的季度数字。介于2和1之间->;2341

C# 如何获取两个日期之间的季度数字。介于2和1之间->;2341,c#,datetime,C#,Datetime,我在stack上搜索了一下,只找到了两次约会之间的25美分硬币数量 但我正在寻找两个日期之间的季度列表 首先,我们得到每个日期的季度号 我们将通过下一条规则获得它们: 季度-1月、2月、3月 季度-4月、5月、6月 季度-7月、8月、9月 季度-10月、11月、12月 对于每个日期,我们都会得到季度数。这部分我可以自己解决。第二部分是得到其中两个四分之一之间的范围 例如: 1日期为2017年7月1日-3季度 2日期为2018年4月1日-第二季度 2和3之间的范围应为[3,4,1] 有人能提供解决

我在stack上搜索了一下,只找到了两次约会之间的25美分硬币数量

但我正在寻找两个日期之间的季度列表

首先,我们得到每个日期的季度号

我们将通过下一条规则获得它们:

  • 季度-1月、2月、3月

  • 季度-4月、5月、6月

  • 季度-7月、8月、9月

  • 季度-10月、11月、12月

  • 对于每个日期,我们都会得到季度数。这部分我可以自己解决。第二部分是得到其中两个四分之一之间的范围

    例如:

    1日期为2017年7月1日-3季度 2日期为2018年4月1日-第二季度

    23之间的范围应为[3,4,1]


    有人能提供解决方案吗?

    试试这样的方法:

    public static IEnumerable<int> GetQuarters(DateTime from, DateTime to)
    {
        if (to < from)
            throw new ArgumentException($"{to} cannot be smaller than {from}", nameof(to));
    
        DateTime date = from;
        int lastQuarter = -1;
        while (date <= to)
        {
            int currentQuarter = (date.Month + 2) / 3;
            if (currentQuarter != lastQuarter)
                yield return currentQuarter;
            date = date.AddDays(1);
            lastQuarter = currentQuarter;
        }
    }
    
    var q = GetQuarters(new DateTime(2019, 08, 03), new DateTime(2020, 01, 01));
    
    请尝试以下操作:

                DateTime startDate = DateTime.Parse("2/10/17");
                DateTime endDate = DateTime.Now;
    
                DateTime previousQuarter = new DateTime(
                    startDate.Year, (4 * (startDate.Month / 4)) + 1, 1);
    
                List<DateTime> quarters = new List<DateTime>();
    
                DateTime quarter = previousQuarter;
                while (quarter < endDate)
                {
                    quarter = quarter.AddMonths(3);
                    quarters.Add(quarter);
                }
    
    DateTime startDate=DateTime.Parse(“2/10/17”);
    DateTime endDate=DateTime.Now;
    DateTime previousQuarter=新日期时间(
    起始日期年(4*(起始日期月/4))+1,1;
    列表季度=新列表();
    日期时间季度=上一季度;
    而(季度<结束日期)
    {
    季度=季度。增加月数(3);
    四分之一。加上(四分之一);
    }
    
    什么是“询问者”?请阅读,并使这个问题更好,以便我们可以help@BugFinder我很抱歉拼错了。我是说四分之一的数字。但是什么四分之一的数字呢?日期没有四分之一numbers@BugFinder我们可以在两个不同的日期得到两个25美分的硬币。然后得到他们之间的季度清单。如果你能给出第一次约会和第二次约会的非常具体的例子,那将非常有帮助。请注意,不同的系统可能会使用不同的季度概念-如果您的意思是“1月至3月、4月至6月、7月至9月、10月至12月”,则值得明确说明。谢谢您的回答。