首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查找给定日期的季度

如何查找给定日期的季度
EN

Stack Overflow用户
提问于 2012-01-02 15:10:45
回答 15查看 72.5K关注 0票数 48

以下是一个财政年度的季度情况

代码语言:javascript
复制
April to June          - Q1
July to Sep            - Q2
Oct to Dec             - Q3
Jan to March           - Q4

如果输入日期的月份如上所述,我需要在季度数字方面的输出。

例如,

如果我给出一个输入日期(比如1月2日),我需要输出为Q4

如果我输入为(Jun 5),输出应该是Q1

根据输入的日期,我需要季度数字。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-01-02 15:15:24

您可以简单地将扩展方法编写为DateTime

代码语言:javascript
复制
public static int GetQuarter(this DateTime date)
{
    if (date.Month >= 4 && date.Month <= 6)
        return 1;
    else if (date.Month >= 7 && date.Month <= 9)
        return 2;
    else if (date.Month >= 10 && date.Month <= 12)
        return 3;
    else 
        return 4;
}

并将其用作

代码语言:javascript
复制
DateTime dt = DateTime.Now;
dt.GetQuarter();
票数 30
EN

Stack Overflow用户

发布于 2015-08-16 19:46:06

如果你喜欢没有分支和数组的简短的解决方案,这里是我的首选解决方案。

正常季度:

代码语言:javascript
复制
public static int GetQuarter(this DateTime date)
{
    return (date.Month + 2)/3;
}

财政年度季度:

代码语言:javascript
复制
public static int GetFinancialQuarter(this DateTime date)
{
    return (date.AddMonths(-3).Month + 2)/3;
}

整数除法将截断小数,得到一个整数结果。将方法放入静态类中,您将拥有一个扩展方法,如下所示:

代码语言:javascript
复制
date.GetQuarter()
date.GetFinancialQuarter()

请参阅dotnetfiddle

票数 82
EN

Stack Overflow用户

发布于 2012-01-02 15:12:25

这是针对“正常年份”的。我认为你可以调整这个样本:

代码语言:javascript
复制
string.Format("Q{0}", (date.Month + 2)/3);
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8698303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档