我正在尝试为我的全日历活动创建一个规则,该规则发生在每月每月的第二个星期一,星期三和星期五。
这是我尝试过的规则
RRULE:FREQ = MONTHLY; COUNT = 10; INTERVAL = 1; WKST = SU; BYDAY = MO,WE,FR; BYSETPOS = 2
events: [{
title: 'rrule event',
rrule: {
freq: RRule.MONTHLY,
count: 10,
interval: 1,
wkst: RRule.SU,
byweekday: [RRule.MO, RRule.WE, RRule.FR],
bysetpos: [2]
},
duration: '02:00',
rendering: 'inverse-background'
}
],
这就是我得到的
1 Fri, 03 May 2019 12:33:53 GMT
2 Wed, 05 Jun 2019 12:33:53 GMT
3 Wed, 03 Jul 2019 12:33:53 GMT
4 Mon, 05 Aug 2019 12:33:53 GMT
5 Wed, 04 Sep 2019 12:33:53 GMT
6 Fri, 04 Oct 2019 12:33:53 GMT
7 Mon, 04 Nov 2019 12:33:53 GMT
8 Wed, 04 Dec 2019 12:33:53 GMT
9 Fri, 03 Jan 2020 12:33:53 GMT
10 Wed, 05 Feb 2020 12:33:53 GMT
期望的是
1 Mon, 08 Apr 2019
2 Wed, 10 Apr 2019
3 Fri, 12 Apr 2019
4 Mon, 13 May 2019
5 Wed, 08 May 2019
6 Fri, 10 May 2019.........
答案 0 :(得分:1)
每个BYDAY值也可以在正数(+ n)之前或 负(-n)整数。如果存在,则表示第n个 发生在每月或每年“规则”内的特定日期。
因此,您要查找的规则按字面值指定了每个月的第二个星期一(2MO
),星期三(2WE
)和星期五(2FR
)。
FREQ=MONTHLY;COUNT=10;BYDAY=2MO,2WE,2FR
(单击以查看结果)
请注意,INTERVAL=1
是默认设置,WKST=SU
在这种情况下是没有意义的,因此您也可以忽略它们。
顺便说一句,您的规则基本上说,在一个月的所有星期一,星期三和星期五中,以该月的第二次为例。