在每月15日后的20天内,在icalendar(RFC 5545)中?

时间:2016-09-19 07:37:19

标签: icalendar

我正在寻找一种在icalendar中表达这种情况的方式:事件发生在每个月,即给定日期后x天。

例如:每个月的第15天后20天。所以,它可能是3日,4日,5日,6日(如2月) 如果bymonthday可以设置为35,那就没问题。

但在展望中,这不会起作用。 如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以尝试添加&#34 ;; BYSETPOS = 20"遵守规则。规范显示了BYSETPOS与BYDAY一起使用时的一个例子,但是我不清楚在使用BYMONTHDAY时它是如何处理的。我没有看到另一个查看规范的选项。

http://icalendar.org/iCalendar-RFC-5545/3-3-10-recurrence-rule.html

http://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html

答案 1 :(得分:0)

抱歉,使用RRULE无法获得所需内容。

你想要的是RRULE:FREQ = MONTHLY; BYMONTHDAY = 35。不幸的是,它无效 - BYMONTHDAY不能超过31。

BYSETPOS也不会工作。在RFC 5545中,BYSETPOS下的第43页如下: " BYSETPOS在重复规则的一个区间内对一组重复实例进行操作。" 这意味着您无法获得超出间隔的值。如果您使用每月,则仅限一个月。

如果您想尝试一些RRULE,请尝试我的重复规则(RRULE解析器) http://balsoftware.net/index.php/open-source/rrule-parser/