mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-05 20:10:33 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user