C# 获取时间段的方法。
最基本的是获取当前的时间:DateTime.Now,该DateTime.Now记录当前的时间为年月日-时分秒-毫秒,可以使用ToString()指定输入的格式,比如说长时间、短时间、只显示年月日等。
其实计算其他时间都可以用基于DateTime.Now来,对年月日、时分秒分别进行加或者减的操作,可以计算当前时间前的时间段以及当前时间之后的时间段。
**************************************************************************************************************
当前时间、今天、昨天时间段获取示例
// 当前时间
DateTime dt = DateTime.Now;
//指定输出格式
string time24 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //24小时制
string time12 = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); //12小时制
// 今天开始,0时0分0秒
DateTime startToday = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());
// 今天结束,23时59分59秒
DateTime endToday = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
DateTime endToday2 = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
DateTime endToday3 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);
// 昨天开始
DateTime startLastDay = DateTime.Now.AddDays(-1).Date;
// 昨天结束
DateTime endLastDay = startLastDay.AddDays(1).AddSeconds(-1);
周时间段获取
// 今天星期几
int whatDayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"));
// 本周周一
DateTime startOfWeek = DateTime.Now.AddDays(1 - ((whatDayOfWeek == 0) ? 7 : whatDayOfWeek)).Date;
// 本周周日
DateTime endOfWeek = startOfWeek.AddDays(7).AddSeconds(-1);
// 上周周一
DateTime startLastWeek = startOfWeek.AddDays(-7).Date;
// 上周周日
DateTime endLastWeek = startLastWeek.AddDays(7).AddSeconds(-1);
月时间段获取
//本月月初
DateTime startOfMonth = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;
//本月月末
DateTime endOfMonth = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1);
DateTime endOfMonth2 = startOfMonth.AddDays((dt.AddMonths(1) - dt).Days - 1); //dt:当天时间
// 上月月初
DateTime startLastMonth = DateTime.Now.AddMonths(-1).Date.AddDays(1 - DateTime.Now.Day);
//上月月末
DateTime endLastMonth = DateTime.Parse(DateTime.Now.AddDays(1 - DateTime.Now.Day).ToShortDateString()).AddSeconds(-1);
季度时间段
//本季度初
DateTime startOfQuarter = DateTime.Now.AddMonths(0 - (DateTime.Now.Month - 1) % 3).AddDays(1 - DateTime.Now.Day).Date;
//本季度末
DateTime endOfQuarter = startOfQuarter.AddMonths(3).AddSeconds(-1);
// 上季度初
DateTime startLastQuarter = startOfQuarter.AddMonths(-3).Date;
// 上季度末
DateTime endLastQuarter = startLastQuarter.AddMonths(3).AddSeconds(-1);
年时间段
//本年年初
DateTime startOfYear = new DateTime(DateTime.Now.Year, 1, 1).Date;
//本年年末
DateTime endOfYear = new DateTime(DateTime.Now.Year, 12, 31, 23, 59, 59);
// 去年年初
DateTime startLastYear = startOfYear.AddYears(-1).Date;
//去年年末
DateTime endLastYear = endOfYear.AddYears(-1);
**************************************************************************************************************
只要合理组合使用AddDays()、AddMonths()、AddYears()这些函数,就可以获取昨天、明天、上周、上月、上季度、上年度等等的时间。
**************************************************************************************************************