/// <summary>
/// 获取指定日期,在为一年中为第几周/// </summary>/// <param name="dt">指定时间</param>/// <reutrn>返回第几周</reutrn>private static int GetWeekOfYear(DateTime dt){ GregorianCalendar gc = new GregorianCalendar(); int weekOfYear = gc.GetWeekOfYear(dt,CalendarWeekRule.FirstDay, DayOfWeek.Monday); return weekOfYear;}
/// <summary>
/// 求某年有多少周/// 返回 int/// </summary>/// <param name="strYear"></param>/// <returns>int</returns>public static int GetYearWeekCount(int strYear){ string returnStr = ""; System.DateTime fDt = DateTime.Parse(strYear.ToString() + "-01-01"); int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几 if (k == 1) { int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear; int countWeek = countDay / 7 + 1; return countWeek; } else { int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear; int countWeek = countDay / 7 + 2; return countWeek; }}
/// <summary>
/// 得到一年中的某周的起始日和截止日/// 年 nYear/// 周数 nNumWeek/// 周始 out dtWeekStart/// 周终 out dtWeekeEnd/// </summary>/// <param name="nYear"></param>/// <param name="nNumWeek"></param>/// <param name="dtWeekStart"></param>/// <param name="dtWeekeEnd"></param>public static void GetWeek(int nYear, int nNumWeek, out DateTime dtWeekStart, out DateTime dtWeekeEnd){ DateTime dt = new DateTime(nYear, 1, 1); dt = dt + new TimeSpan((nNumWeek - 1) * 7, 0, 0, 0); dtWeekStart = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday); dtWeekeEnd = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);}
/// <summary>
/// 求某年有多少周/// 返回 int/// </summary>/// <param name="strYear"></param>/// <returns>int</returns>public static int GetYearWeekCount(int strYear){ string returnStr = ""; System.DateTime fDt = DateTime.Parse(strYear.ToString() + "-01-01"); int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几 if (k == 1) { int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear; int countWeek = countDay / 7 + 1; return countWeek; } else { int countDay = fDt.AddYears(1).AddDays(-1).DayOfYear; int countWeek = countDay / 7 + 2; return countWeek; }}