根据日期计算属于学期的第几周
PS:周一为一周的开始时间
#region 根据开学第一天和某天,得到某天属于这学期的第几周 /// <summary> /// 根据开学第一天和某天,得到某天属于这学期的第几周 /// </summary> /// <param name="firstDate">开学的第一天</param> /// <param name="secondDate">要计算的某天</param> /// <returns></returns> public static int GetWeekNoByDate(DateTime firstDate, DateTime secondDate) { if (secondDate < firstDate) { throw new Exception("后面的日期不能小于开学日期"); } int weekNo = 1; //周天 0 周一 1 周二 2 周三 3 周四 4 周五 5 周六 6 int firstDayOfWeek = (int)firstDate.DayOfWeek; int firstWeekDays = 0; if (firstDayOfWeek > 0) { firstWeekDays = 7 - firstDayOfWeek; } //得到第一周的最后一天 DateTime firstWeekLastDay = firstDate.AddDays(firstWeekDays); if (secondDate <= firstWeekLastDay) { return weekNo; } else { int totalDays = secondDate.DayOfYear - firstWeekLastDay.AddDays(1).DayOfYear; int addWeekNo = totalDays / 7; //周数 weekNo += addWeekNo + 1; return weekNo; } } #endregion

浙公网安备 33010602011771号