获取当前日期是本年第几周
public static int GetWeekIndexByYear(DateTime dt)
{
//当前时间当年的第一天
DateTime time = Convert.ToDateTime(dt.ToString("yyyy") + "-01-01");
TimeSpan ts = dt - time;
//当年第一天是星期几
int firstDayOfWeek = (int)time.DayOfWeek;
//获取当前时间已过的总天数(四舍五入)
int day = int.Parse(ts.TotalDays.ToString("F0")) + 1;
//今年第一天星期日
if (firstDayOfWeek == 0)
{
day--; //总天数减1
}
else
{
day = day - (7 - firstDayOfWeek + 1); //减去第一周的天数
}
int thisDayOfWeek = (int)dt.DayOfWeek; //当前日期的星期
if (thisDayOfWeek == 0) //星期日直接减7天
{
day = day - 7;
}
else
{
day = day - thisDayOfWeek;
}
//第一个星期完整的7天+ 当前时间这个星期的7天 除以7
int week = (day + 7 + 7) / 7;
return week;
}