+++ /dev/null
-package tim.prune.data;
-
-import tim.prune.I18nManager;
-
-/**
- * Class to represent a time difference, like the difference between two Timestamp objects,
- * and methods for representing and displaying them.
- */
-public class TimeDifference
-{
- private long _totalSeconds = 0L;
- private int _seconds = 0;
- private int _minutes = 0;
- private int _hours = 0;
- private String _description = null;
-
-
- /**
- * Constructor using long
- * @param inNumSeconds number of seconds time difference
- */
- public TimeDifference(long inNumSeconds)
- {
- _totalSeconds = inNumSeconds;
- if (inNumSeconds < 0) {inNumSeconds = -inNumSeconds;}
- _hours = (int) (inNumSeconds / 60 / 60);
- _minutes = (int) (inNumSeconds / 60 - _hours * 60);
- _seconds = (int) (inNumSeconds % 60);
- }
-
-
- /**
- * Constructor giving each field separately
- * @param inHours number of hours
- * @param inMinutes number of minutes
- * @param inSeconds number of seconds
- * @param inPositive true for positive time difference
- */
- public TimeDifference(int inHours, int inMinutes, int inSeconds, boolean inPositive)
- {
- // Check for negative values?
- _hours = inHours;
- _minutes = inMinutes;
- _seconds = inSeconds;
- _totalSeconds = inHours * 3600L + inMinutes * 60L + inSeconds;
- if (!inPositive) {_totalSeconds = -_totalSeconds;}
- }
-
-
- /**
- * @return total number of seconds time difference
- */
- public long getTotalSeconds()
- {
- return _totalSeconds;
- }
-
- /**
- * @return number of hours
- */
- public int getNumHours()
- {
- return _hours;
- }
-
- /**
- * @return number of minutes
- */
- public int getNumMinutes()
- {
- return _minutes;
- }
-
- /**
- * @return number of seconds
- */
- public int getNumSeconds()
- {
- return _seconds;
- }
-
- /**
- * @return true if time difference positive
- */
- public boolean getIsPositive()
- {
- return _totalSeconds >= 0L;
- }
-
-
- /**
- * Build a String to describe the time duration
- * @return time as a string, days, hours, mins, secs as appropriate
- */
- public String getDescription()
- {
- if (_description != null) {return _description;}
- StringBuffer buffer = new StringBuffer();
- boolean started = false;
- // hours
- if (_hours > 0)
- {
- buffer.append(_hours).append(' ').append(I18nManager.getText("display.range.time.hours"));
- started = true;
- }
- // minutes
- if (_minutes > 0)
- {
- if (started) {buffer.append(", ");}
- else {started = true;}
- buffer.append(_minutes).append(' ').append(I18nManager.getText("display.range.time.mins"));
- }
- // seconds
- if (_seconds > 0 || !started)
- {
- if (started) {buffer.append(", ");}
- buffer.append(_seconds).append(' ').append(I18nManager.getText("display.range.time.secs"));
- }
- _description = buffer.toString();
- return _description;
- }
-
-}