获取两个日期的季度数

时间:2016-11-12 22:05:52

标签: c# sql-server

我有下一个日期季度列表:

  • 1月1日至3月
  • 2月2日 - 6月
  • 7月3日至9月
  • 10月4日 - 12月

用户可以选择其中任何一个,这将被设置为第一季度。接下来,他提供一个月的一年,我必须计算给定日期的季度数。由于我不介意这些日子,所以总是设置为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;

如何将其修改为正确的季度,无论哪个被设置为第一个?

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)