rrule获得每个月的第二个星期一,星期三和星期五

问题描述 投票:2回答:1

我正在尝试为我的fullcalendar事件创建一个rrule,该事件发生在每个月的第二个星期一,星期三和星期五。

这是我试过的套谜

RRULE:FREQ = MONTHLY; COUNT = 10;间隔= 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.........
fullcalendar rrule
1个回答
1
投票

RFC 5545, section 3.3.10.说:

每个BYDAY值也可以以正(+ n)或负(-n)整数开头。如果存在,则表示在每月或每年“RRULE”中第n次出现特定日期。

因此,您正在寻找的规则确定每个月的第二个星期一(2MO),星期三(2WE)和星期五(2FR)。

FREQ=MONTHLY;COUNT=10;BYDAY=2MO,2WE,2FR(点击查看结果)

请注意,INTERVAL=1是默认值,WKST=SU在这种情况下毫无意义,因此您也可以省略它们。

顺便说一句,你的规则基本上说,在一个月的所有星期一,星期三和星期五,在那个月进行第二次实例。

© www.soinside.com 2019 - 2024. All rights reserved.