Monotone-Parent: 25c172f93ef4ab6ada0aeb6ff4267e98aef8b719

Monotone-Revision: 95af248444f21e7a45c7f512247840f4bf84e4bb

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-12-10T19:02:50
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2008-12-10 19:02:50 +00:00
parent ff33d95a42
commit 8d1507cc3a
4 changed files with 57 additions and 40 deletions

View File

@ -1,3 +1,22 @@
2008-12-10 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* iCalYearlyRecurrenceCalculator.m
([iCalYearlyRecurrenceCalculator -lastInstanceStartDate]): same as
below.
* iCalMonthlyRecurrenceCalculator.m
([iCalMonthlyRecurrenceCalculator -lastInstanceStartDate]): same
as below.
* iCalWeeklyRecurrenceCalculator.m
([iCalWeeklyRecurrenceCalculator -lastInstanceStartDate]): same as
below.
* iCalDailyRecurrenceCalculator.m ([iCalDailyRecurrenceCalculator
-lastInstanceStartDate]): return a date based on the start date,
instead of julian calculations, to avoid losing the original date
timezone.
2008-08-18 Ludovic Marcotte <lmarcotte@inverse.ca>
* NSString+NGCards.m ([NSString -unescapedFromCard]): added code

View File

@ -484,25 +484,23 @@ static void NGMonthDaySet_fillWithByDayX (NGMonthDaySet *daySet,
return ranges;
}
- (NSCalendarDate *) lastInstanceStartDate
- (NSCalendarDate *) lastInstanceStartDate
{
NSCalendarDate *firStart, *lastInstanceStartDate;
if ([rrule repeatCount] > 0)
{
NSCalendarDate *until;
unsigned months, interval;
interval = [rrule repeatInterval];
months = [rrule repeatCount] - 1 /* the first counts as one! */;
if (interval > 0)
months *= interval;
until = [[firstRange startDate] dateByAddingYears: 0
months: months
days: 0];
return until;
firStart = [firstRange startDate];
lastInstanceStartDate = [firStart dateByAddingYears: 0
months: ([rrule repeatInterval]
* [rrule repeatCount])
days: 0];
}
return [super lastInstanceStartDate];
else
lastInstanceStartDate = [super lastInstanceStartDate];
return lastInstanceStartDate;
}
@end /* iCalMonthlyRecurrenceCalculator */

View File

@ -185,25 +185,22 @@
return ranges;
}
- (NSCalendarDate *) lastInstanceStartDate
- (NSCalendarDate *) lastInstanceStartDate
{
NSCalendarDate *firStart, *lastInstanceStartDate;
if ([rrule repeatCount] > 0)
{
long jnFirst, jnRuleLast;
NSCalendarDate *firStart, *until;
firStart = [firstRange startDate];
jnFirst = [firStart julianNumber];
jnRuleLast = ([rrule repeatInterval] *
[rrule repeatCount] * 7) +
jnFirst;
until = [NSCalendarDate dateForJulianNumber: jnRuleLast];
until = [until hour: [firStart hourOfDay]
minute: [firStart minuteOfHour]
second: [firStart secondOfMinute]];
return until;
lastInstanceStartDate = [firStart dateByAddingYears: 0 months: 0
days: (7 * [rrule repeatInterval]
* [rrule repeatCount])];
}
return [super lastInstanceStartDate];
else
lastInstanceStartDate = [super lastInstanceStartDate];
return lastInstanceStartDate;
}
@end /* iCalWeeklyRecurrenceCalculator */

View File

@ -90,19 +90,22 @@
- (NSCalendarDate *) lastInstanceStartDate
{
if ([rrule repeatCount] > 0)
NSCalendarDate *firStart, *lastInstanceStartDate;
if ([rrule repeatCount] > 0)
{
NSCalendarDate *until;
unsigned years, interval;
interval = [rrule repeatInterval];
years = [rrule repeatCount] * interval;
until = [[firstRange startDate] dateByAddingYears: years
months: 0
days: 0];
return until;
firStart = [firstRange startDate];
lastInstanceStartDate
= [firStart dateByAddingYears: ([rrule repeatInterval]
* [rrule repeatCount])
months: 0
days: 0];
}
return [super lastInstanceStartDate];
else
lastInstanceStartDate = [super lastInstanceStartDate];
return lastInstanceStartDate;
}
@end /* iCalYearlyRecurrenceCalculator */