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 }
演示:
http://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