时不时用到,记录一下,要么老得重复想
先看本月和本月最后一天的
DateTime dateNow = DateTime.Now;//当天 DateTime dateCurrentMonthFirstDay = new DateTime(dateNow.Year,dateNow.Month,1);//本月第一天 DateTime dateCurrentMonthLastDay = dateCurrentMonthFirstDay.AddMonths(1).AddDays(-1);//本月第一天变成下月第一天再减一天变成本月最后一天
然后本周第一天我写了个方法(还有点优化空间,但不太重要)
public DateTime GetFirstDayOfWeek(DateTime dt) { dt = dt ==null?DateTime.Now:dt; int daydiff = (int)dt.DayOfWeek - 1 < 0 ? 6 : (int)dt.DayOfWeek - 1;//如果是0结果小于0表示周日 那最后要减6天:其他天数在dayOfWeek上减1,表示回到周一 DateTime result = dt.AddDays(-daydiff); return result; }
最后利用刚才生成的dateNow和新方法 计算本周第一天和最后一天
DateTime dateWeekFirstDay = GetFirstDayOfWeek(dateNow);//本周第一天 DateTime dateWeekLastDay = dateWeekFirstDay.AddDays(-1);//本周第一天加6天变成本周最后一天