From e386404b0a8e2c05857084d573be453f87749bf8 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 22 Dec 2015 14:19:02 -0500 Subject: [PATCH 1/2] Properly compute the last week number for the year Fixes #1010 --- SoObjects/SOGo/SOGoUser.m | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index d81dcf52c..129eb1910 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -514,15 +514,26 @@ - (unsigned int) weekNumberForDate: (NSCalendarDate *) date { - NSCalendarDate *firstWeek; + NSCalendarDate *firstWeek, *previousWeek; unsigned int weekNumber; firstWeek = [self firstWeekOfYearForDate: date]; if ([firstWeek earlierDate: date] == firstWeek) - weekNumber = ([date timeIntervalSinceDate: firstWeek] - / (86400 * 7) + 1); + { + weekNumber = ([date timeIntervalSinceDate: firstWeek] / (86400 * 7) + 1); + } else - weekNumber = 0; + { + // Date is within the last week of the previous year; + // Compute the previous week number to find the week number of the requested date. + // The number will either be 52 or 53. + previousWeek = [date dateByAddingYears: 0 + months: 0 + days: -7]; + firstWeek = [self firstWeekOfYearForDate: previousWeek]; + weekNumber = ([previousWeek timeIntervalSinceDate: firstWeek] / (86400 * 7) + 1); + weekNumber += 1; + } return weekNumber; } From 135535e00e0802b5a054b6e9f5b1b631bbd18df1 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 22 Dec 2015 14:25:00 -0500 Subject: [PATCH 2/2] Update NEWS file --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index baf40ee35..5edd37251 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +2.3.5 (2016-MM-DD) +------------------ + +Bug fixes + - properly compute the last week number for the year (#1010) + 2.3.4 (2015-12-15) ------------------