svn commit: r911080 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r911080 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java

doogie-3
Author: doogie
Date: Wed Feb 17 17:18:31 2010
New Revision: 911080

URL: http://svn.apache.org/viewvc?rev=911080&view=rev
Log:
Inline set(Calendar, Calendar) into the constructor.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java?rev=911080&r1=911079&r2=911080&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/TimeDuration.java Wed Feb 17 17:18:31 2010
@@ -65,7 +65,68 @@
      * @param cal2
      */
     public TimeDuration(Calendar cal1, Calendar cal2) {
-        this.set(cal1, cal2);
+        // set up Calendar objects
+        Calendar calStart = null;
+        Calendar calEnd = null;
+        boolean isNegative = false;
+        if (cal1.before(cal2)) {
+            calStart = (Calendar) cal1.clone();
+            calEnd = (Calendar) cal2.clone();
+        } else {
+            isNegative = true;
+            calStart = (Calendar) cal2.clone();
+            calEnd = (Calendar) cal1.clone();
+        }
+
+        /* Strategy: Using millisecond arithmetic alone will produce inaccurate results.
+         * Using a Calendar alone will take too long. So, we use millisecond arithmetic
+         * to get near the correct result, then zero in on the correct result using a
+         * Calendar.
+         */
+        long targetMillis = calEnd.getTimeInMillis();
+        long deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // shortcut for equal dates
+        if (deltaMillis == 0) {
+            return;
+        }
+
+        // compute elapsed years
+        long yearMillis = 86400000 * calStart.getMinimum(Calendar.DAY_OF_YEAR);
+        float units = deltaMillis / yearMillis;
+        this.years = advanceCalendar(calStart, calEnd, (int) units, Calendar.YEAR);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // compute elapsed months
+        long monthMillis = 86400000 * calStart.getMinimum(Calendar.DAY_OF_MONTH);
+        units = deltaMillis / monthMillis;
+        this.months = advanceCalendar(calStart, calEnd, (int) units, Calendar.MONTH);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // compute elapsed days
+        units = deltaMillis / 86400000;
+        this.days = advanceCalendar(calStart, calEnd, (int) units, Calendar.DAY_OF_MONTH);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // compute elapsed hours
+        units = deltaMillis / 3600000;
+        this.hours = advanceCalendar(calStart, calEnd, (int) units, Calendar.HOUR);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // compute elapsed minutes
+        units = deltaMillis / 60000;
+        this.minutes = advanceCalendar(calStart, calEnd, (int) units, Calendar.MINUTE);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        // compute elapsed seconds
+        units = deltaMillis / 1000;
+        this.seconds = advanceCalendar(calStart, calEnd, (int) units, Calendar.SECOND);
+        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
+
+        this.millis = (int) deltaMillis;
+        if (isNegative) {
+            makeNegative();
+        }
     }
 
     @Override
@@ -168,71 +229,6 @@
         return cal;
     }
 
-    protected void set(Calendar cal1, Calendar cal2) {
-        // set up Calendar objects
-        Calendar calStart = null;
-        Calendar calEnd = null;
-        boolean isNegative = false;
-        if (cal1.before(cal2)) {
-            calStart = (Calendar) cal1.clone();
-            calEnd = (Calendar) cal2.clone();
-        } else {
-            isNegative = true;
-            calStart = (Calendar) cal2.clone();
-            calEnd = (Calendar) cal1.clone();
-        }
-
-        /* Strategy: Using millisecond arithmetic alone will produce inaccurate results.
-         * Using a Calendar alone will take too long. So, we use millisecond arithmetic
-         * to get near the correct result, then zero in on the correct result using a
-         * Calendar.
-         */
-        long targetMillis = calEnd.getTimeInMillis();
-        long deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // shortcut for equal dates
-        if (deltaMillis == 0) {
-            return;
-        }
-
-        // compute elapsed years
-        long yearMillis = 86400000 * calStart.getMinimum(Calendar.DAY_OF_YEAR);
-        float units = deltaMillis / yearMillis;
-        this.years = advanceCalendar(calStart, calEnd, (int) units, Calendar.YEAR);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // compute elapsed months
-        long monthMillis = 86400000 * calStart.getMinimum(Calendar.DAY_OF_MONTH);
-        units = deltaMillis / monthMillis;
-        this.months = advanceCalendar(calStart, calEnd, (int) units, Calendar.MONTH);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // compute elapsed days
-        units = deltaMillis / 86400000;
-        this.days = advanceCalendar(calStart, calEnd, (int) units, Calendar.DAY_OF_MONTH);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // compute elapsed hours
-        units = deltaMillis / 3600000;
-        this.hours = advanceCalendar(calStart, calEnd, (int) units, Calendar.HOUR);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // compute elapsed minutes
-        units = deltaMillis / 60000;
-        this.minutes = advanceCalendar(calStart, calEnd, (int) units, Calendar.MINUTE);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        // compute elapsed seconds
-        units = deltaMillis / 1000;
-        this.seconds = advanceCalendar(calStart, calEnd, (int) units, Calendar.SECOND);
-        deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(), targetMillis);
-
-        this.millis = (int) deltaMillis;
-        if (isNegative) {
-            makeNegative();
-        }
-    }
-
     protected long computeDeltaMillis(long start, long end) {
         if (start < 0) {
             return end + (-start);