如何跟踪C#/ SQL Server中的重复日历事件?

问题描述:

我想在应用程序的日期/时间显示中显示重复事件。此日期时间显示可以采用日历的形式,但也可以是即将发生的事件的列表。如何跟踪C#/ SQL Server中的重复日历事件?

处理跟踪可重复发生的事件的最佳方法是什么?

例如:事件应该在数据库中存储一次,并在显示代码中投影/重复多次?事件应该存储多次,然后才呈现?

我之前做过类似的事情,并且我的架构脱离了SQL Server sysschedules表。

http://technet.microsoft.com/en-us/library/ms178644.aspx

以上链接的模式将允许你存储的日程安排工作(事件)。然后,您可以根据时间表计算事件发生的日期。这可能是一个冗长的计算,所以我会尝试在某处缓存结果。

我认为这取决于事件类型。它是否像圣诞节一旦出现,并且在下一次出现之前发生,你真的不感兴趣?还是像“每个月都要给妈妈打电话”这样的任务,如果发生了,你错过了它,你不希望它消失?

我最近实施后者的一种方法是创建一个有next_occurrence(日期),reoccurence_period(每周,每月,每年等)列的记录。因此,下一次发生的事情会在列表中显示出来。一旦它通过了列表项目,将有一个回收图标,一旦按下就会将记录更新到未来的下一次发生。

再一次,我不确定这是否适用于您的情况,但它对我的工作很好。

我不确定是否从本网站获得此链接。无论如何,Martin Fowler在他的网站上讨论过这个问题。

http://martinfowler.com/apsupp/recurring.pdf