重复"事件"(日历)

Mez*_*Mez 6 events calendar date

我目前正在开发一个应用程序,允许人们为在线广播电台安排"节目".

我希望用户能够设置重复的事件,比如说: -

"狂欢星期一"节目 - 每周一从9-11"月中疯狂" - 每月的第二个星期四"这个月的新音乐" - 每个月的第一天.

在您看来,这是建模的最佳方式(基于MVC/MTV结构).

注意:我实际上是在Django编码.但我对它背后的理论更感兴趣,而不是具体的实现细节.

Jon*_*eet 9

啊,重复的事件 - 我生命中的一个祸根,以及时区.日历很难.

可能希望根据RFC2445对此进行建模.但是,这可能会给你带来更大的灵活性和复杂性,而不是你真正想要的.

需要考虑的一些事项:

  • 在给定日期,您是否需要比特定时间更精细的粒度?如果你需要根据时间重复,它会变得更加棘手.
  • 考虑日期角落案例,例如"每月30日"以及这对闰年意味着什么
  • 考虑时间角落情况,例如"每天凌晨1点30分" - 有时上午1点30分可能会发生两次,有时可能根本不会发生,因为夏令时
  • 您是否需要与其他时区的人分享时间表?这让生活变得更加棘手
  • 您是否需要表示事件发生的次数或事件发生的最终日期?(基本上是"计数"或"直到".)您可能不需要,或者您可能需要一个或两个.

我意识到这是一个需要考虑的事情列表,而不是一个确定的答案,但我认为在您尝试制定解决方案之前定义问题的参数很重要.