Monotone-Parent: 52de90085e2d18ded0d0c315e7148e1c72feb785

Monotone-Revision: 99d14630f5294d40da6680a39d69b6f1b7853938

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-07-17T21:12:43
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-07-17 21:12:43 +00:00
parent e1beed1ba0
commit bdc02c26ab
46 changed files with 1595 additions and 521 deletions
@@ -25,6 +25,8 @@
#import <Foundation/NSString.h>
#import <NGCards/iCalRecurrenceRule.h>
#import <NGCards/iCalRecurrenceCalculator.h>
#import <NGExtensions/NGCalendarDateRange.h>
#import "iCalRepeatableEntityObject+SOGo.h"
@@ -86,4 +88,42 @@
return value;
}
- (NGCalendarDateRange *) firstOccurenceRange
{
[self subclassResponsibility: _cmd];
return nil;
}
- (unsigned int) occurenceInterval
{
[self subclassResponsibility: _cmd];
return 0;
}
- (BOOL) doesOccurOnDate: (NSCalendarDate *) occurenceDate
{
NSArray *ranges;
NGCalendarDateRange *checkRange;
NSCalendarDate *endDate;
BOOL doesOccur;
doesOccur = [self isRecurrent];
if (doesOccur)
{
endDate = [occurenceDate addTimeInterval: [self occurenceInterval]];
checkRange = [NGCalendarDateRange calendarDateRangeWithStartDate: occurenceDate
endDate: endDate];
ranges = [iCalRecurrenceCalculator recurrenceRangesWithinCalendarDateRange: checkRange
firstInstanceCalendarDateRange: [self firstOccurenceRange]
recurrenceRules: [self recurrenceRules]
exceptionRules: [self exceptionRules]
exceptionDates: [self exceptionDates]];
doesOccur = [ranges dateRangeArrayContainsDate: occurenceDate];
}
return doesOccur;
}
@end