1

我需要一个 RRULE Parser 方法,我可以在其中提供事件的开始日期、事件的结束日期和该事件的 RRULE 等信息。方法应返回该事件将发生的日期列表。

我尝试使用谷歌库和 ical,但无法创建方法。请帮忙

4

2 回答 2

1

如果您想使用 google 日历 API,它们为各种不同的编程语言提供了一些很好的快速入门。我最近关注了 Ruby 没有任何问题。这使您可以使用一些基本代码启动并运行,以列出日历中接下来的几个事件。不过,为了按照您描述的方式使用此功能,您需要通过一个 API 调用将事件添加到您的日历中,然后通过另一个 API 调用获取事件。

或者,JavaScript 库rrule.js更准确地完成了您所描述的操作。以下示例请参阅自述文件的一半。

在 RRULE 定义中包含开始日期:

var str = "FREQ=WEEKLY;DTSTART=20180201T093000Z;UNTIL=20180301T093000Z";
var rule = RRule.fromString(str);

rule.all(); // enumerate occurrences

分别提供 RRULE 和开始日期:

var options = RRule.parseString("FREQ=DAILY;INTERVAL=6");
options.dtstart = new Date(2018, 2, 1, 9, 30);
options.until = new Date(2018, 3, 1, 9, 30);
var rule = new RRule(options);

rule.all(); // enumerate occurrences
于 2018-04-10T22:23:49.777 回答
0

如果您使用 PHP,iCalendar.org 上的Zap Cal PHP 库可以将 RRULE 字符串扩展为日期数组。请参阅示例文件夹中的示例 recurringdate.php 以了解如何执行此操作。但基本上是这样的:

$rd = new ZCRecurringDate($rrule, $startdate);
//use $maxdate to avoid infinitely repeating dates
$dates = $rd->getDates($maxdate);

$dates 包含重复日期的数组

于 2018-04-11T17:43:27.343 回答