public final class Chronometer
extends java.lang.Object
This class implements a virtual digital stopwatch (or chronometer),
providing basic and useful functionalities for time measurement,
such as start()
, stop()
, multiple laps
and total elapsed running time
.
Modifier and Type | Class and Description |
---|---|
static class |
Chronometer.Precision
Defines the method to be utilized by a Chronometer instance in order to
obtain current time.
|
Constructor and Description |
---|
Chronometer()
Default constructor.
|
Chronometer(Chronometer.Precision precision)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
countLaps()
The total count of laps this chronometer is currently keeping track of.
|
java.lang.String |
dumpTimes()
This method will dump the entire content of the chronometer to a string.
|
static java.lang.String |
format(long time)
Converts a time interval to a human-readable text up to the millisecond.
|
static java.lang.String |
format(long time,
Chronometer.Precision precision)
Converts a time interval to a human-readable text up to the specificed precision.
|
static java.lang.String |
format(long time,
java.util.concurrent.TimeUnit precision)
Converts a time interval to a human-readable text up to the specificed precision.
|
long |
getCurrentLap()
Gets the running time elapsed for the current lap,
which excludes any time elapsed while the chronometer was stopped.
|
long |
getElapsedTime()
Total elapsed time during which the chronometer is or was running.
|
long |
getLap(java.lang.String label)
Gets the running time elapsed for the given labeled lap.
|
static Chronometer |
getStarted()
Creates and returns a new instance of Chronometer on which
start()
has already been called. |
static Chronometer |
getStarted(Chronometer.Precision precision)
Creates and returns a new instance of Chronometer on which
start()
has already been called. |
boolean |
isRunning() |
void |
newLap(java.lang.String label)
Starts of a new labeled lap and also stops the previous one, if any.
|
void |
reset()
Completely resets the chronometer, putting it in stop state.
|
void |
start()
Starts the chronometer.
|
long |
stop()
Completely "freezes" the chronometer, including any current lap.
|
java.lang.String |
toString()
Converts the current elapsed time to a human-readable text up to the chronometer's precision.
|
java.lang.String |
toString(java.lang.String label)
Converts the current elapsed time for a given lap to a human-readable
text up to the chronometer's precision.
|
public Chronometer()
Chronometer(Precision)
with Precision.Milliseconds
.public Chronometer(Chronometer.Precision precision)
precision
- The chronometer's precisionpublic long stop()
Completely "freezes" the chronometer, including any current lap.
Calling start()
after a stop means that the chronometer
will restart exactly from the last stop. In other words, the time
elapsed between these two sequential calls: stop() -> start()
won't count.
getElapsedTime()
public void reset()
public static Chronometer getStarted()
start()
has already been called.public static Chronometer getStarted(Chronometer.Precision precision)
start()
has already been called.precision
- The chronometer's precisionpublic void start()
Starts the chronometer.
Calling start after a stop()
means that the chronometer
will restart exactly from the last stop. In other words, the time
elapsed between these two sequential calls: stop()
-> start()
won't count.
If the chronometer is already running, an IllegalStateException will be thrown.
public boolean isRunning()
public long getElapsedTime()
public int countLaps()
public void newLap(java.lang.String label)
Starts of a new labeled lap and also stops the previous one, if any.
The chronometer has to be running, othersize an IllegalStateException will be thrown.
label
- Non-null label for the new lappublic long getLap(java.lang.String label)
Gets the running time elapsed for the given labeled lap. This excludes any time elapsed while the chronometer was stopped.
label
- Label of the lap to retrievepublic long getCurrentLap()
Gets the running time elapsed for the current lap, which excludes any time elapsed while the chronometer was stopped.
public static java.lang.String format(long time)
time
- Elapsed timepublic static java.lang.String format(long time, Chronometer.Precision precision)
time
- Elapsed timeprecision
- The precision of the given time intervaljava.lang.NullPointerException
- If given precision is nullpublic static java.lang.String format(long time, java.util.concurrent.TimeUnit precision)
time
- Elapsed timeprecision
- The time unit representing the precision of the given time intervaljava.lang.NullPointerException
- If given precision unit is nullpublic java.lang.String dumpTimes()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toString(java.lang.String label)
label
- The label associated with the desired lap