
1 /// <summary> 2 /// 獲取當前時間是當年的第幾周 3 /// </summary> 4 /// <param name="dt"></param> 5 /// <returns></returns> 6 public static int GetWeekIndexByYear(DateTime dt) 7 { 8 //當前時間當年的第一天 9 DateTime time = Convert.ToDateTime(dt.ToString("yyyy") + "-01-01"); 10 TimeSpan ts = dt - time; 11 //當年第一天是星期幾 12 int firstDayOfWeek = (int)time.DayOfWeek; 13 //獲取當前時間已過的總天數(四舍五入) 14 int day = int.Parse(ts.TotalDays.ToString("F0")) + 1; 15 //今年第一天星期日 16 if (firstDayOfWeek == 0) 17 { 18 //總天數減1 19 day--; 20 } 21 else 22 { 23 //減去第一周的天數 24 day = day - (7 - firstDayOfWeek + 1); 25 } 26 //當前日期的星期 27 int thisDayOfWeek = (int)dt.DayOfWeek; 28 //星期日直接減7天 29 if (thisDayOfWeek == 0) 30 { 31 day = day - 7; 32 } 33 else 34 { 35 day = day - thisDayOfWeek; 36 } 37 //第一個星期完整的7天+ 當前時間這個星期的7天 除以7 38 int week = (day + 7 + 7) / 7; 39 return week; 40 }