思路:
只要知道 dateTime.DayOfYear 也既是说这一天是一年里面的第多少天
出去年初的未满一周的天数 x , 就可以算出 dateTime.DayOfYear-x / 7 +1既是周数
而年初未满一周的天数 x可以通过 dateTime.DayOfWeek (dateTime设置为1月1号)来求得。
这是算法 具体实现 应该很容易吧?
//
方法一:
private int CalcWeekOfYear(DateTime today)
{
DateTime first = today.AddDays(-1* today.DayOfYear+1);
// return (today.DayOfYear + 7 - Convert.ToInt32(first.DayOfWeek))/7 + 1;
return (today.DayOfYear - Convert.ToInt32(first.DayOfWeek))/7 + 1;
}
///
方法二:
using System.Globalization;
.......
//获取
CultureInfo myCI = new CultureInfo("zh-CN");
System.Globalization.Calendar myCal = myCI.Calendar;
//日期格式
CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
//本周为第myCal.GetWeekOfYear( DateTime.Now, myCWR, myFirstDOW )周
int thisWeek=myCal.GetWeekOfYear( DateTime.Now, myCWR, myFirstDOW );