package com.generationjava.test;
/**
* useful when doing timings in a debug or test situation.
*/
public class stopwatch {
static public int an_hour = 60 * 60 * 1000;
static public int a_minute = 60 * 1000;
private long starttime = -1;
private long stoptime = -1;
/**
* start the stopwatch.
*/
public void start() {
this.starttime = system.currenttimemillis();
}
/**
* stop the stopwatch.
*/
public void stop() {
this.stoptime = system.currenttimemillis();
}
/**
* reset the stopwatch.
*/
public void reset() {
this.starttime = -1;
this.stoptime = -1;
}
/**
* split the time.
*/
public void split() {
this.stoptime = system.currenttimemillis();
}
/**
* remove a split.
*/
public void unsplit() {
this.stoptime = -1;
}
/**
* get the time on the stopwatch. this is either the
* time between start and latest split, between start and stop,
* or the time between the start and the moment this method is called.
*/
public long gettime() {
if(stoptime != -1) {
return (system.currenttimemillis() - this.starttime);
} else {
return this.stoptime - this.starttime;
}
}
public string tostring() {
return gettimestring();
}
/**
* get the time gap as a string.
* in hours, minutes, seconds and milliseconds.
*/
public string gettimestring() {
int hours, minutes, seconds, milliseconds;
long time = gettime();
hours = (int) (time / an_hour);
time = time - (hours * an_hour);
minutes = (int) (time / a_minute);
time = time - (minutes * a_minute);
seconds = (int) (time / 1000);
time = time - (seconds * 1000);
millis = (int) time;
return hours + "h:" + minutes + "m:" + seconds + "s:" + millis + "ms";
}
}
闽公网安备 35060202000074号