如何获取两个日期之间的季度数字。在2和1之间-> 2341

时间:2019-04-09 14:14:13

标签: c# datetime

我在堆栈上进行了一些搜索,但只发现了两个日期之间的四分之一数。

但是我正在寻找两个日期之间的宿舍列表。

所以首先我们得到每个日期的季度数字。

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

  1. 季度-1月,2月,3月。

  2. 季度-4月,5月,6月,

  3. 季度-七月,八月,九月,

  4. 季度-十月,十一月,十二月。

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

例如:

1个日期是2017年7月1日- 3 个季度,
2日期是2018年4月1日- 2 个季度。

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

有人可以为此提供解决方案吗?

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

!!str.match(/^[.,:!?]/)

如果您这样称呼它,它应该还给您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; } }

{3,4,1}

答案 1 :(得分:0)

尝试以下操作:

            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);
            }