把时间转换为季度:
第一种(验证过,正确):
/// <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();