我有下一个日期季度列表:
用户可以选择其中任何一个,这将被设置为第一季度。接下来,他提供一个月的一年,我必须计算给定日期的季度数。由于我不介意这些日子,所以总是设置为1.因此,例如,如果用户选择第3季度,输入2017年和第02个月(2017-02-01),结果必须为3,因为Jul- 9月成为1号,因此Jan-Mar成为3号。
到目前为止,我可以计算静态季度的季度数:
DateTime date = DateTime.Parse('2017-02-01');
int quarterNumber = ((date.Month - 1) / 3) + 1;
如何将其修改为正确的季度,无论哪个被设置为第一个?
答案 0 :(得分:1)
DateTime date = DateTime.Parse("2017-02-01");
int quarterNumber = ((12+(date.Month - 1)-((x-1)*3)) %12 / 3) + 1;
其中x是列表中选定的四分之一数字(1,2,3,4)