commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bay...@apache.org
Subject svn commit: r415317 - /jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java
Date Mon, 19 Jun 2006 12:48:08 GMT
Author: bayard
Date: Mon Jun 19 05:48:08 2006
New Revision: 415317

URL: http://svn.apache.org/viewvc?rev=415317&view=rev
Log:
Committing fix for LANG-140. By reversing the order of field calculation, Yu Peng's bug goes
away

Modified:
    jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java

Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java?rev=415317&r1=415316&r2=415317&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java
(original)
+++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/time/DurationFormatUtils.java
Mon Jun 19 05:48:08 2006
@@ -276,37 +276,38 @@
         end.setTime(new Date(endMillis));
 
         // initial estimates
-        int years = end.get(Calendar.YEAR) - start.get(Calendar.YEAR);
+        int milliseconds = end.get(Calendar.MILLISECOND) - start.get(Calendar.MILLISECOND);
+        int seconds = end.get(Calendar.SECOND) - start.get(Calendar.SECOND);
+        int minutes = end.get(Calendar.MINUTE) - start.get(Calendar.MINUTE);
+        int hours = end.get(Calendar.HOUR_OF_DAY) - start.get(Calendar.HOUR_OF_DAY);
+        int days = end.get(Calendar.DAY_OF_MONTH) - start.get(Calendar.DAY_OF_MONTH);
         int months = end.get(Calendar.MONTH) - start.get(Calendar.MONTH);
+        int years = end.get(Calendar.YEAR) - start.get(Calendar.YEAR);
+
         // each initial estimate is adjusted in case it is under 0
-        while (months < 0) {
-            months += 12;
-            years -= 1;
-        }
-        int days = end.get(Calendar.DAY_OF_MONTH) - start.get(Calendar.DAY_OF_MONTH);
-        while (days < 0) {
-            days += 31; // such overshooting is taken care of later on
-            months -= 1;
+        while (milliseconds < 0) {
+            milliseconds += 1000;
+            seconds -= 1;
         }
-        int hours = end.get(Calendar.HOUR_OF_DAY) - start.get(Calendar.HOUR_OF_DAY);
-        while (hours < 0) {
-            hours += 24;
-            days -= 1;
+        while (seconds < 0) {
+            seconds += 60;
+            minutes -= 1;
         }
-        int minutes = end.get(Calendar.MINUTE) - start.get(Calendar.MINUTE);
         while (minutes < 0) {
             minutes += 60;
             hours -= 1;
         }
-        int seconds = end.get(Calendar.SECOND) - start.get(Calendar.SECOND);
-        while (seconds < 0) {
-            seconds += 60;
-            minutes -= 1;
+        while (hours < 0) {
+            hours += 24;
+            days -= 1;
         }
-        int milliseconds = end.get(Calendar.MILLISECOND) - start.get(Calendar.MILLISECOND);
-        while (milliseconds < 0) {
-            milliseconds += 1000;
-            seconds -= 1;
+        while (days < 0) {
+            days += 31; // such overshooting is taken care of later on
+            months -= 1;
+        }
+        while (months < 0) {
+            months += 12;
+            years -= 1;
         }
 
         // take estimates off of end to see if we can equal start, when it overshoots recalculate



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message