1. 程式人生 > >C#中如何把時間轉換為季度取季度第一天等時間取值問題雜燴

C#中如何把時間轉換為季度取季度第一天等時間取值問題雜燴

把時間轉換為季度:

第一種(驗證過,正確):

/// <summary>

        /// 傳入月份,得到季度數
        /// </summary>
        /// <param name="month"></param>
        /// <returns></returns>
        public int ConvertMonthToQuarter(int month)
        {
            double f = Convert.ToDouble(month) / 3f;
            if (f > Convert.ToInt32(f))
            {
                return Convert.ToInt32(f) + 1;
            }
            return Convert.ToInt32(f);

        }

第二種:

month / 3 + (month % 3 > 0 ? 1 : 0);

第三種:

 (month/3) + (month%3 == 0 ? 0 : 1);

其實第二種和第三種都差不多,思維是一樣的。

//獲取本季度的第一天  
DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01");  
  
  
//獲取本季度的最後一天  
DateTime.Parse(DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01")).AddDays(-1).ToShortDateString();  
  
  
//獲取下一個季度    
DateTime.Now.AddMonths(3-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01");  
  
DateTime.Parse(DateTime.Now.AddMonths(6-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01")).AddDays(-1).ToShortDateString();  
  
//獲取上個季度    
DateTime.Now.AddMonths(-3-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01");  
  
DateTime.Parse(DateTime.Now.AddMonths(0-((DateTime.Now.Month-1)%3)).ToString("yyyy-mm-01")).AddDays(-1).ToShortDateString();