From 0d8c134cb1af337cec171d3f2c30d1e25cca76d1 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Tue, 9 Mar 2010 17:06:40 +0000 Subject: [PATCH] Monotone-Parent: 390c5899c8e498b7d320dc7528a7ffbf31204b43 Monotone-Revision: a7332f5374e76477d1df1d08f12d1fc7f06af1a7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-03-09T17:06:40 Monotone-Branch: ca.inverse.sogo --- SOPE/NGCards/ChangeLog | 6 ++++++ SOPE/NGCards/iCalTimeZonePeriod.m | 9 +++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/SOPE/NGCards/ChangeLog b/SOPE/NGCards/ChangeLog index a2fec6384..b74626387 100644 --- a/SOPE/NGCards/ChangeLog +++ b/SOPE/NGCards/ChangeLog @@ -1,3 +1,9 @@ +2010-03-09 Wolfgang Sourdeau + + * iCalTimeZonePeriod.m (_occurenceForDate:byRRule:): fixed + computing of timezone switch dates, which were offset by one week + too early. + 2010-01-06 Wolfgang Sourdeau * iCalDateTime.m (-setTimeZone:): don't modify the date in case of diff --git a/SOPE/NGCards/iCalTimeZonePeriod.m b/SOPE/NGCards/iCalTimeZonePeriod.m index 855f7c8a2..f1f7a0a04 100644 --- a/SOPE/NGCards/iCalTimeZonePeriod.m +++ b/SOPE/NGCards/iCalTimeZonePeriod.m @@ -105,6 +105,8 @@ dateTime]; } +/* This method returns the date corresponding for to the start of the period + in the year of the reference date. */ - (NSCalendarDate *) _occurenceForDate: (NSCalendarDate *) refDate byRRule: (iCalRecurrenceRule *) rrule { @@ -132,12 +134,7 @@ second: -[self _secondsOfOffset: @"tzoffsetfrom"]]; dateDayOfWeek = [tmpDate dayOfWeek]; - - if (pos > 0) - offset = (dayOfWeek - dateDayOfWeek) + ((pos - 1) * 7); - else - offset = (dayOfWeek - dateDayOfWeek) + (pos * 7); - + offset = (dayOfWeek - dateDayOfWeek) + (pos * 7); tmpDate = [tmpDate addYear: 0 month: 0 day: offset hour: 0 minute: 0 second: 0];