Author: doogie
Date: Wed Feb 17 17:21:39 2010
New Revision: 911085
URL: http://svn.apache.org/viewvc?rev=911085&view=rev
Log:
Remove makeNegative calls.
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=911085&r1=911084&r2=911085&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:21:39 2010
@@ -47,6 +47,9 @@
* @param millis The number of milliseconds in this duration
*/
public TimeDuration(int years, int months, int days, int hours, int
minutes, int seconds, int millis) {
+ if (years < 0 || months < 0 || days < 0 || hours < 0 || minutes < 0
|| seconds < 0 || millis < 0) {
+ isNegative = true;
+ }
this.millis = millis;
this.seconds = seconds;
this.minutes = minutes;
@@ -54,9 +57,6 @@
this.days = days;
this.months = months;
this.years = years;
- if (years < 0 || months < 0 || days < 0 || hours < 0 || minutes < 0
|| seconds < 0 || millis < 0) {
- makeNegative();
- }
}
/** Elapsed time constructor. The time duration will be computed from the
@@ -68,12 +68,13 @@
// set up Calendar objects
Calendar calStart;
Calendar calEnd;
- boolean isNegative = false;
+ int factor;
if (cal1.before(cal2)) {
+ factor = 1;
calStart = (Calendar) cal1.clone();
calEnd = (Calendar) cal2.clone();
} else {
- isNegative = true;
+ factor = -1;
calStart = (Calendar) cal2.clone();
calEnd = (Calendar) cal1.clone();
}
@@ -90,43 +91,41 @@
if (deltaMillis == 0) {
return;
}
+ this.isNegative = factor == -1;
// 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);
+ this.years = factor * 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);
+ this.months = factor * 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);
+ this.days = factor * 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);
+ this.hours = factor * 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);
+ this.minutes = factor * 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);
+ this.seconds = factor * advanceCalendar(calStart, calEnd, (int) units,
Calendar.SECOND);
deltaMillis = computeDeltaMillis(calStart.getTimeInMillis(),
targetMillis);
- this.millis = (int) deltaMillis;
- if (isNegative) {
- makeNegative();
- }
+ this.millis = factor * (int) deltaMillis;
}
private static long computeDeltaMillis(long start, long end) {
@@ -269,17 +268,6 @@
return cal;
}
- protected void makeNegative() {
- this.millis = Math.min(this.millis, -this.millis);
- this.seconds = Math.min(this.seconds, -this.seconds);
- this.minutes = Math.min(this.minutes, -this.minutes);
- this.hours = Math.min(this.hours, -this.hours);
- this.days = Math.min(this.days, -this.days);
- this.months = Math.min(this.months, -this.months);
- this.years = Math.min(this.years, -this.years);
- this.isNegative = true;
- }
-
/** Returns a <code>TimeDuration</code> instance derived from a
<code>long</code>
* value. This method is intended to be used in tandem with the
* <code>toLong</code> method. <p>The years and months portions of the