我在堆栈上进行了一些搜索,但只发现了两个日期之间的四分之一数。
但是我正在寻找两个日期之间的宿舍列表。
所以首先我们得到每个日期的季度数字。
我们将通过下一条规则获取它们:
季度-1月,2月,3月。
季度-4月,5月,6月,
季度-七月,八月,九月,
季度-十月,十一月,十二月。
对于每个日期,我们获得季度数。这部分我可以自己解决。第二部分是获取其中两个之间的四分之一范围。
例如:
1个日期是2017年7月1日- 3 个季度,
2日期是2018年4月1日- 2 个季度。
2 和 3 之间的范围应为[3,4,1]。
有人可以为此提供解决方案吗?
答案 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);
}