我想从偏移NSDate
和EKRecurrenceRule
计算上一个日期或下一个日期。有点像这样:
NSDate* prevDate = [Something computePreviousDateForOffsetDate: aDate
withRecurrenceRule: aRule];
NSDate* nextDate = [Something computeNextDateForOffsetDate: aDate
withRecurrenceRule: aRule];
我可以使用简单的重复规则创建Something
,但复杂的规则对我来说有点难度。我认为这是非常常见的事情,所以我问这个问题。
我是否需要花时间来实施自己的解决方案?
答案 0 :(得分:1)
在EKRecurrenceRule
失去一些时间后,我找到了ios-rrule_parser的替代解决方案。它最容易使用,它涵盖了我的所有需求。
对于nextDate,请使用:
NSDate *startDate = [NSDate date];
NSDate *endDate = [startDate dateByAddingTimeInterval:100 *24 *60 *60];
Scheduler * scheduler = [[Scheduler alloc] initWithDate:startDate andRule:@"RRULE:FREQ=DAILY;COUNT=1;INTERVAL=2"];
NSArray *occurences = [scheduler occurencesBetween:startDate andDate:endDate];
NSDate *nextDate = [occurences objectAtIndex:0];
对于previousDate,只需更改startDate。