如何获取上一季度的开始日期和结束日期 [英] How to get start and end dates of last quarter

查看:158
本文介绍了如何获取上一季度的开始日期和结束日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HI,

如何使用C#获取上个季度的开始和结束日期?

问候,
Ramakrishna



How do i get the start and end dates of last quarter using C#?

Regards,
Ramakrishna

推荐答案

我对我来说是一件微不足道的任务:假设按以下方式定义四分之一:

I looks a trivial task to me: suppose the quarters are defined this way:

  1. 1月1日至3月31日
  2. 4月1日至6月30日
  3. 7月1日至9月30日
  4. 10月1日至12月31日
  5. >


然后,您必须找到包含当前日期的四分之一(在我们的示例中为四),最后减去一个(如果结果为0,则将数字设置为4).

C#中实现这种算法应该很简单.您对此有何疑问?
:)


Then you have to find the quarter containing the current date (It''s number four in our case) and finally subtract one (set number 4 if the result is 0).

Implementing such an algorithm in C# should be simple. What are your doubts about?
:)


下面的代码为我们提供了当前日期前一个季度的开始日期和结束日期. :)
Code below gives us the start date and end dates of previous quarter of the current day. :)
private void button1_Click(object sender, EventArgs e)
        {
            DateTime startDate = default(DateTime);
            DateTime endDate = default(DateTime);
            string lastQuarter = GetLastQuarterDates(DateTime.Now.Month);
            SetLastQuarterDates(out startDate, out endDate, lastQuarter);
            label1.Text = Convert.ToString(startDate);
            label2.Text = Convert.ToString(endDate);
        }  

private void SetLastQuarterDates(out DateTime startDate, out DateTime endDate, string quarter)
        {
            int startMonth = 0;
            int startYear = DateTime.Now.Year;
            int startDay = 1;
            int endMonth = 0;
            int endYear = DateTime.Now.Year;
            int endDay = 31;

            switch (quarter)
            {
                case "Q1":
                    startMonth = 1;
                    endMonth = 3;
                    endDay = 30;
                    break;

                case "Q2":
                    startMonth = 4;
                    endMonth = 6;
                    break;

                case "Q3":
                    startMonth = 7;
                    endMonth = 9;
                    endDay = 30;
                    break;

                case "Q4":
                    startMonth = 10;
                    startYear = DateTime.Now.Year - 1;
                    endMonth = 12;
                    endYear = DateTime.Now.Year - 1;
                    break;
            }

            startDate = new DateTime(startYear, startMonth, startDay);
            endDate = new DateTime(endYear, endMonth, endDay);
        }

        private string GetLastQuarterDates(int month)
        {
            string quarter = string.Empty;

            if (month >= 1 && month <= 3)
            {
                quarter = "Q4";
            }
            if (month >= 4 && month <= 6)
            {
                quarter = "Q1";
            }
            if (month >= 7 && month <= 9)
            {
                quarter = "Q2";
            }
            if (month >= 10 && month <= 12)
            {
                quarter = "Q3";
            }

            return quarter;
        }


查看 .NET的时间段库 [ ^ ]:
// ----------------------------------------------------------------------
public static void DaysOfPastQuarter( DateTime moment )
{
  // example of fiscal year, which starts at October
  TimeCalendar calendar = new TimeCalendar( new TimeCalendarConfig { YearBaseMonth = YearMonth.October } );
  Quarter currentQuarter = new Quarter( moment, calendar );
  Quarter pastQuarter = currentQuarter.GetPreviousQuarter();

  Console.WriteLine( "Start: " + pastQuarter.FirstDayLast );
  Console.WriteLine( "End: " + pastQuarter.LastDayStart );
} // DaysOfPastQuarter



干杯,加尼(Jani.)



Cheers, Jani.


这篇关于如何获取上一季度的开始日期和结束日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆