You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2013/05/09 07:56:59 UTC

[2/5] git commit: [flex-sdk] [refs/heads/develop] - FLEX-12749 Changed date maths to use real days so it works across daylight saving boundaries

FLEX-12749 Changed date maths to use real days so it works across daylight saving boundaries


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/9cd95538
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/9cd95538
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/9cd95538

Branch: refs/heads/develop
Commit: 9cd95538e563c8d34a837fd9ac37dec5b3252d58
Parents: fe78d41
Author: Justin Mclean <jm...@apache.org>
Authored: Thu May 9 11:27:19 2013 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Thu May 9 11:27:19 2013 +1000

----------------------------------------------------------------------
 .../projects/mx/src/mx/controls/CalendarLayout.as  |   21 +++++++--------
 1 files changed, 10 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/9cd95538/frameworks/projects/mx/src/mx/controls/CalendarLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/mx/src/mx/controls/CalendarLayout.as b/frameworks/projects/mx/src/mx/controls/CalendarLayout.as
index 138b4c7..04676e4 100644
--- a/frameworks/projects/mx/src/mx/controls/CalendarLayout.as
+++ b/frameworks/projects/mx/src/mx/controls/CalendarLayout.as
@@ -941,12 +941,12 @@ public class CalendarLayout extends UIComponent
                 if (dayOffset < 0)
                     dayOffset += 7;
 
-                tempDate = incrementDate(tempDate,dayOffset)
+                tempDate = addSubtractDays(tempDate, dayOffset);
 
                 while (tempDate < maxDate)
                 {
-                    removeRangeFromSelection(tempDate,tempDate);
-                    tempDate = incrementDate(tempDate,7)
+                    removeRangeFromSelection(tempDate, tempDate);
+                    tempDate = addSubtractDays(tempDate, 7);
                 }
             }
         }
@@ -1969,12 +1969,11 @@ public class CalendarLayout extends UIComponent
      *  Increments/decrements a date by 'No. of days'
      *  specified by amount and returns the new date.
      */
-    mx_internal function incrementDate(value:Date, amount:int = 1):Date
+    mx_internal function addSubtractDays(value:Date, amount:int):Date
     {
         var newDate:Date = new Date(value);
-        var time:Number = newDate.getTime();
-        newDate.setTime(time + amount * 86400000);
-        return newDate;
+		
+        return new Date(newDate.fullYear, newDate.month, newDate.date + amount);
     }
 
     /**
@@ -2021,7 +2020,7 @@ public class CalendarLayout extends UIComponent
 			{
 				if (endDate < rangeEnd)
 				{
-					_selectedRanges[n].rangeStart = incrementDate(endDate);
+					_selectedRanges[n].rangeStart = addSubtractDays(endDate, 1);
 				}
 				else
 				{
@@ -2037,18 +2036,18 @@ public class CalendarLayout extends UIComponent
 				{
 					var temp:Date = _selectedRanges[n].rangeEnd;
 					
-					_selectedRanges[n].rangeEnd = incrementDate(startDate, -1);
+					_selectedRanges[n].rangeEnd = addSubtractDays(startDate, -1);
 					
 					_selectedRanges[selectedRangeCount] = {};
 					_selectedRanges[selectedRangeCount].rangeStart =
-						incrementDate(endDate);
+						addSubtractDays(endDate, 1);
 					_selectedRanges[selectedRangeCount].rangeEnd = temp;
 					
 					selectedRangeCount += 1;
 				}
 				else
 				{
-					_selectedRanges[n].rangeEnd = incrementDate(startDate, -1);
+					_selectedRanges[n].rangeEnd = addSubtractDays(startDate, -1);
 				}
 			}
 		}