Until date support in timezone periods

Fixes #1487
maint-2.0.2
Francis Lachapelle 2012-09-24 20:43:12 -04:00
parent 903f6f2d72
commit 90fe3edce2
2 changed files with 12 additions and 5 deletions

View File

@ -194,17 +194,22 @@ static NSArray *knownTimeZones;
forDate: (NSCalendarDate *) aDate
{
NSArray *periods;
NSEnumerator *periodsList;
iCalTimeZonePeriod *period;
NSCalendarDate *occurence;
occurence = nil;
periods = [self childrenWithTag: pName];
if ([periods count])
{
period = (iCalTimeZonePeriod *) [periods objectAtIndex: 0];
occurence = [period occurenceForDate: aDate];
periodsList = [periods objectEnumerator];
period = (iCalTimeZonePeriod *) [periodsList nextObject];
while (occurence == nil && period)
{
occurence = [period occurenceForDate: aDate];
period = (iCalTimeZonePeriod *) [periodsList nextObject];
}
}
else
occurence = nil;
return occurence;
}

View File

@ -174,11 +174,13 @@
NSCalendarDate *tmpDate;
iCalRecurrenceRule *rrule;
tmpDate = nil;
rrule = (iCalRecurrenceRule *) [self uniqueChildWithTag: @"rrule"];
if ([rrule isVoid])
tmpDate
= [(iCalDateTime *) [self uniqueChildWithTag: @"dtstart"] dateTime];
else
else if ([rrule untilDate] == nil || [refDate compare: [rrule untilDate]] == NSOrderedAscending)
tmpDate = [self _occurenceForDate: refDate byRRule: rrule];
return tmpDate;