tav*_*ier 3 datetime exchange-server activesync c#-4.0 nodatime
任何人都可以告诉我根据事件发生次数和事件发生的模式计算重复事件的结束日期的最佳方法.
例如:我的活动开始日期为2014年7月10日(星期二),每周星期二开始.此事件将在10次发生后结束(比方说).因此,我的方法应该返回结束日期:12/09/2014
该方法还应考虑更复杂的情况,例如假设事件每年在10月的第一个星期一发生并且总共发生10次.
(这不是一个能够以任何方式为您提供完整解决方案的答案,但希望它是朝着正确方向迈出的一步.)
祝好运.我参与过ActiveSync实现,而经常发生的事件从根本上是痛苦的.你需要考虑各种角落案例 - 如果每个月30日发生一些事情,2月会发生什么?如果它发生在凌晨1点30分,时钟在事件的时区前进或后退,那么1.30am在特定的一天发生0或2次会发生什么?
Noda Time可以为此提供帮助,但它不能提供完整的解决方案,部分原因是所有要求都会有很大变化.
你需要知道的是重要的类型LocalDate,并LocalDateTime提供时区中立的日期/时间,和Period代表时间的不-一定固定的周期,如"1月".这将有助于"添加一周"这样的事情 - 并且有一些方法LocalDate可以解决诸如"在此日期之后的下周一"之类的事情."每周,周一和周三"的活动变得越来越难 - 你需要逐步完成几周,找出特定周内的哪些日子,直到你完成了所需的所有活动.
Noda Time 2.0具有"调整器"的概念,这将使"10月的第一个星期一"等生活变得简单,但您需要做的一切都可以通过Noda Time 1.3来完成.(不要等待Noda Time 2.0,我不希望至少再发布6个月.)
我认为我最强烈的建议是:
x + 1 month + 1 month不一样x + 2 months| 归档时间: |
|
| 查看次数: |
497 次 |
| 最近记录: |