/// <summary> /// 获取该月中是第几周 /// </summary> /// <param name="day">日期</param> /// <returns></returns> private int WeekOfMonth(System.DateTime day) { string y = day.Year.ToString(); string m = day.Month.ToString(); string s = y + "-" + m + "-1"; DateTime dt = DateTime.Parse(s); int d = day.Day - dt.Day; int w = 1; for (int i = 1; i <= d; i++) { DateTime dt1 = dt.AddDays(i); if (dt1.DayOfWeek == DayOfWeek.Sunday) { w = w + 1; } } return w; } /// <summary> /// 获取该年中是第几周 /// </summary> /// <param name="day">日期</param> /// <returns></returns> private int WeekOfYear(System.DateTime day) { int weeknum; System.DateTime fDt = DateTime.Parse(day.Year.ToString() + "-01-01"); int k = Convert.ToInt32(fDt.DayOfWeek);//得到该年的第一天是周几 if (k == 0) { k = 7; } int l = Convert.ToInt32(day.DayOfYear);//得到当天是该年的第几天 l = l - (7 - k + 1); if (l <= 0) { weeknum = 1; } else { if (l % 7 == 0) { weeknum = l / 7 + 1; } else { weeknum = l / 7 + 2;//不能整除的时候要加上前面的一周和后面的一周 } } return weeknum; }
第二种方法:double s = System.Math.Floor((double)((Convert.ToDateTime(this.txtStarttime.Text).DayOfYear) + (Convert.ToInt32(Convert.ToDateTime(Convert.ToDateTime(this.txtStarttime.Text).Year.ToString() + "-1-1").DayOfWeek)) - 1) / 7) + 1;
转载于:https://www.cnblogs.com/kevinhome/archive/2012/11/13/2767970.html