c# 某日期是当月的第几周
DateTime里只有DayOfWeek这个属性,不能直接得到当天是当月的第几周。所以写了个函数,来计算一个日期是当月的第几个星期,代码有详细的注释,就不多说了
参数说明:day:要判断的日期,WeekStart:1周一为一周的开始,2周日为一周的开始
1 public static int WeekOfMonth(DateTime day,int WeekStart)
2 {
3 //WeekStart
4 //1表示 周一至周日 为一周
5 //2表示 周日至周六 为一周
6 DateTime FirstofMonth;
7 FirstofMonth = Convert.ToDateTime(day.Date.Year + "-" + day.Date.Month + "-" + 1);
8
9 int i= (int)FirstofMonth.Date.DayOfWeek;
10 if (i == 0)
11 {
12 i = 7;
13 }
14
15 if (WeekStart == 1)
16 {
17 return (day.Date.Day + i - 2) / 7 + 1;
18 }
19 if (WeekStart == 2)
20 {
21 return (day.Date.Day + i - 1) / 7 ;
22
23 }
24 return 0;
25 //错误返回值0
26 }
演示:https://files.cnblogs.com/cnhefang/weekofmonth.rar
2 {
3 //WeekStart
4 //1表示 周一至周日 为一周
5 //2表示 周日至周六 为一周
6 DateTime FirstofMonth;
7 FirstofMonth = Convert.ToDateTime(day.Date.Year + "-" + day.Date.Month + "-" + 1);
8
9 int i= (int)FirstofMonth.Date.DayOfWeek;
10 if (i == 0)
11 {
12 i = 7;
13 }
14
15 if (WeekStart == 1)
16 {
17 return (day.Date.Day + i - 2) / 7 + 1;
18 }
19 if (WeekStart == 2)
20 {
21 return (day.Date.Day + i - 1) / 7 ;
22
23 }
24 return 0;
25 //错误返回值0
26 }
27