calendarui/editors/src/calenrepeatfield.cpp
branchRCL_3
changeset 36 9c5b1510919f
parent 0 f979ecb2b13e
child 60 96907930389d
--- 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;
             }