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();