前两天计算获取2019有多少周,现有的代码算出来有54周,看的我一脸懵逼。
以周一为每周的第一天
public static int GetYearWeekCount(int year)
{
var dateTime = DateTime.Parse(year + "-01-01");
var firstDayOfWeek = Convert.ToInt32(dateTime.DayOfWeek);//得到该年的第一天是周几 [周日、周一、周二...周六]
if (firstDayOfWeek == 1)
{
var countDay = dateTime.AddYears(1).AddDays(-1).DayOfYear;
var countWeek = countDay / 7 + 1;
return countWeek;
}
else
{
//转换周日为最后一天
if (firstDayOfWeek == 0)
{
firstDayOfWeek = 7;
}
var countDay = dateTime.AddYears(1).AddDays(-1).DayOfYear;
countDay -= (8 - firstDayOfWeek);
var countWeek = countDay / 7 + 2;
return countWeek;
}
}