時不時用到,記錄一下,要么老得重復想
先看本月和本月最后一天的
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天變成本周最后一天