--- a/calendarui/editors/src/calenrepeatfield.cpp Tue May 25 12:41:10 2010 +0300
+++ b/calendarui/editors/src/calenrepeatfield.cpp Wed Jun 09 09:40:23 2010 +0300
@@ -34,6 +34,9 @@
// debug
#include "calendarui_debug.h"
+//Feb 29th will be read as 28 as indexing of days starts from 0,1,2....
+const TInt KLastDayInFebLeapYear = 28;
+
// CONSTRUCTION AND DESTRUCTION METHODS
// -----------------------------------------------------------------------------
@@ -263,8 +266,22 @@
}
else
{
- TDateTime repUntilDateTime( ECalenMaxYear, TMonth(ECalenMaxMonth), ECalenMaxDay, 0, 0, 0, 0 );
- TTime aTime( repUntilDateTime );
+ //Fix for repeated event date change:
+ TDateTime startDate = start.DateTime();
+
+ //Checking for leap year feb.29th, next year it should be 28.
+ TInt untilDay;
+ if(startDate.Month() == EFebruary && startDate.Day() == KLastDayInFebLeapYear)
+ {
+ untilDay = KLastDayInFebLeapYear - 1;
+ }
+ else
+ {
+ untilDay = startDate.Day();
+ }
+
+ TDateTime repOneYear(startDate.Year()+1,startDate.Month(), untilDay, 0, 0, 0, 0);
+ TTime aTime( repOneYear );
until = aTime;
}