首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >半周活动RRule

半周活动RRule
EN

Stack Overflow用户
提问于 2021-09-27 20:38:41
回答 2查看 329关注 0票数 1

我一直在试图找出如何组成一个RRULE,它每周都有几天交替发生的事件;例如:

  • 周A:星期一下午4点
  • 周B周五下午4点

在那里,A周和B周不断交替进入未来。

我得到的最接近的是:

代码语言:javascript
复制
RRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=2;BYDAY=MO,FR

这是接近,但给我星期一和星期五在同一周。我如何编码它来选择第二个星期五在两周的间隔?这似乎比使用RRULEs所能做的事情要简单得多,所以我可能忽略了一些显而易见的东西?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-12 06:50:54

如果这打算永远持续下去,没有“计数”,那么我认为你能做到的唯一方法就是有两个事件。

使用BY的任何其他的BYSETPOS都会在年底的某个时候遇到麻烦,或者从您定义的角度来看序列的结束。两个事件使一个事件能够干净利落地迭代星期一和星期五。

为每个事件选择DTSTART对于确保您在星期一之后的正确星期五重复使用是至关重要的。你有类似于M fm

来自https://calendar.google.com/calendar/ical/eppua87dpfnq85bsrrt2siqlcs%40group.calendar.google.com/public/basic.ics

代码语言:javascript
复制
BEGIN:VEVENT
DTSTART:20211022T160000Z
DTEND:20211022T170000Z
RRULE:FREQ=WEEKLY;WKST=MO;INTERVAL=2;BYDAY=FR
DTSTAMP:20211012T064353Z
UID:STACKTESTFRIDAY
CREATED:20171102T185254Z
DESCRIPTION:
LAST-MODIFIED:20211012T064141Z
LOCATION:
SEQUENCE:2
STATUS:CONFIRMED
SUMMARY:Afternoon Tea on Friday
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20211011T160000Z
DTEND:20211011T180000Z
RRULE:FREQ=WEEKLY;WKST=MO;INTERVAL=2;BYDAY=MO
DTSTAMP:20211012T064353Z
UID:STACKTESTMONDAY
CREATED:20171102T185254Z
DESCRIPTION:
LAST-MODIFIED:20211012T064112Z
LOCATION:
SEQUENCE:2
STATUS:CONFIRMED
SUMMARY:Afternoon Tea on Monday
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
票数 1
EN

Stack Overflow用户

发布于 2021-10-12 09:06:01

这是另一个可能对你有用的选择。在YEARLY规则中,可以在BYDAY元素前面加上偏移量n,以标识一年中该工作日的第n个实例。

如果您的重复事件从一年中的第20个星期一开始,您可以构建这样的规则来迭代30个不同工作日的实例。

代码语言:javascript
复制
RRULE:FREQ=YEARLY;BYDAY=20MO,21FR,22MO,23FR,24MO,25FR,26MO,27FR,28MO,29FR,30MO,31FR,32MO,33FR,34MO,35FR,36MO,37FR,38MO,39FR,40MO,41FR,42MO,43FR,44MO,45FR,46MO,47FR,48MO,49FR

注意,这假设一年从星期六、星期日或星期一开始。

如果一年从星期二、星期三、星期四或星期五开始,则工作日必须有相同的数目(因为在这种情况下,n-星期一和n+1-星期五发生在同一周),即

代码语言:javascript
复制
RRULE:FREQ=YEARLY;BYDAY=20MO,22FR,22MO,24FR,24MO,26FR,26MO,28FR,28MO,30FR,30MO,32FR,32MO,34FR,34MO,36FR,36MO,38FR,38MO,40FR,40MO,42FR,42MO,44FR,44MO,46FR,46MO,48FR,48MO,50FR
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69353006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档