C#日期一年中的第几周代码,在网上找了不少,但是代码太过于复杂,本不想自己再个轮子,但用别人的代码实在是觉得太复杂,自己动手搞一下吧。
算法原理:
1、一周的第一天按星期一开始(中国居多)
2、一周的第一天按星期天开始(国外居多)
3、确定好一周的某天开始后,然后计算出这一年的第一天是星期几,再计算出这天与一周第一天的差额。
4、找到要测算日期在一年中的位置,即在一年当中的第多少天。
5、把这个一年中的第多少天与上面的差额相加,得到一个总额,拿这个总额与一周的周期7做比较,相除及取余判断来计算出第几周
public static int GetDiJiZhou(DateTime dt, WeekBeginWith weekBegin)
{
DateTime date = new DateTime(dt.Year, 1, 1);
int dayofweek = (int)date.DayOfWeek;
if (weekBegin == WeekBeginWith.Monday)
{
if (dayofweek == 0) dayofweek = 7;
dayofweek -= 1;
}
int dayofyear = dt.DayOfYear;
int total = dayofyear + dayofweek;
int week = total / 7;
if (total % 7 != 0) week++;
return week;
}