【问题标题】:How should I update an iCal RRULE when moving an appointment?移动约会时我应该如何更新 iCal RRULE?
【发布时间】:2011-01-08 16:43:03
【问题描述】:

我正在将我的应用程序日历从 Telerik Scheduler 切换到 jQuery fullcalendar。我正在使用 iCal RRULE 将重复事件存储在数据库中。

问题是,当有人将事件拖到新日期时,我如何更新 RRULE 以使每个后续事件都受到相同的时间增量?

我查看了 DDay.iCal 并看到了方法

RecurrencePattern.IncrementDate(ref iCalDateTime dt, int Interval)

听起来就像我正在寻找的东西,但the documentation 中没有详细信息。

有什么建议吗?

非常感谢,

迈克尔

【问题讨论】:

    标签: c# icalendar recurrence rfc2445 rrule


    【解决方案1】:

    RecurrencePattern.IncrementDate 并不是真的要在库本身之外使用。也许我会考虑将其设为受保护/私有(如果可以在不破坏整体功能的情况下完成)。

    通常,您只需将事件的开始时间更改为您确定的增量(例如 1 天),该事件中的每次重复也将更改该数量。

    如果您不希望增量更改整个事件,而只更改特定事件,那么还有其他方法可以处理它。

    您能否通过一个示例事件、您想要移动它的增量以及预期结果来澄清一下?

    【讨论】:

    • 谢谢你,Doug... 说我想看《迷失》,我把它放在了周一晚上的日历上。然后我发现它实际上是在星期二晚上。所以我将第一个事件拖到星期二放下。事件处理程序 (arshaw.com/fullcalendar/docs/event_ui/eventDrop) 包括一个 dayDelta 和一个 minuteDelta,所以我当然可以更改第一次发生的开始日期。但是如何更新 RRULE?换句话说,如何在不使用复杂 UI 的情况下将 RRULE 从“RRULE:FREQ=WEEKLY;BYDAY=MO”更改为“RRULE:FREQ=WEEKLY;BYDAY=TU”(而是使用拖放操作)下降)?
    • Michael,以下内容将在每周的第一次出现的同一天发生:“RRULE:FREQ=WEEKLY” 因此,如果您将第一次出现从星期一更改为星期二,则每周的 RRULE 将不需要被改变。对于更复杂的重复规则集,它可以;但是,95% 以上的事件遵循可预测的简单重复结构。如果您还有其他问题,请告诉我:)
    猜你喜欢
    • 2017-02-06
    • 1970-01-01
    • 2011-04-09
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多