C# 如何获取两个日期之间的季度数字。介于2和1之间->;2341
我在stack上搜索了一下,只找到了两次约会之间的25美分硬币数量 但我正在寻找两个日期之间的季度列表 首先,我们得到每个日期的季度号 我们将通过下一条规则获得它们: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] 有人能提供解决
有人能提供解决方案吗?试试这样的方法:
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月”,则值得明确说明。谢谢您的回答。