重复日历未过期的事件

时间:2009-11-18 01:37:52

标签: ruby events calendar recurring

我正在寻找一个PHP库(或更好的红宝石)来处理事件日历。我看过几十个,当涉及到反复发生的事件时,每个人都会崩溃。许多需要和结束日期,并且大多数创建每个重复事件作为数据库中的条目或其他东西。

我得到的每一个建议都是使用Google日历,这完全符合我的要求,但我确信他们不会让我在服务之上构建服务。

4 个答案:

答案 0 :(得分:1)

听起来你可能不想自己动手,但是如果有任何必须发送的事件,只需设置一个cron作业来检查每x分钟?

答案 1 :(得分:1)

我自己没有使用Runt,但看起来它可能会做你想要的。

根据他们的主页:

Runt是Martin Fowler在超级奇妙的Ruby语言中实现选择时间模式的实现。 Runt提供:

  • 定义重复事件的能力 使用简单的,类似于集合的表达式
  • 基于接口的API,用于创建 任意的时间表 事件/对象
  • 使用时间的精确日期类型 点
  • 日期范围
  • 永恒的和平与/或永生

答案 2 :(得分:1)

RiCal的重复规则适用于此。他们做数学,实现将取决于你。

require 'rubygems'
require 'ri_cal'
rule = RiCal::PropertyValue::RecurrenceRule::RecurringMonthDay.new(15)
p rule.include?(Date.new(2025, 7, 15)) # true

答案 3 :(得分:0)

了解重复发生事件的一件好事是我们的历法周期每28年一次。 即今天是2010年12月3日星期四,所以我知道在28年(10226天),我们将于2038年12月3日星期四。 有了这些知识,您可以在有限的时间内建立一个发生数量表,并将其“移动”到您的目标时间范围......