import static java.lang.System.currentTimeMillis; public class ProcessTimer { private Long startTimeInMilliseconds; private Long executionTimeInMilliseconds; private String executionTime; public ProcessTimer() { this.startTimeInMilliseconds = currentTimeMillis(); } public ProcessTimer(Long startTimeInMilliseconds) { this.startTimeInMilliseconds = startTimeInMilliseconds; } public Long getExecutionTimeInMilliseconds(Long endTimeInMilliseconds) { updateTimings(endTimeInMilliseconds); return executionTimeInMilliseconds; } public Long getExecutionTimeInMilliseconds() { updateTimings(currentTimeMillis()); return executionTimeInMilliseconds; } public String getExecutionTime() { updateTimings(currentTimeMillis()); return executionTime; } public String getExecutionTime(Long endTimeInMilliseconds) { updateTimings(endTimeInMilliseconds); return executionTime; } private void updateTimings(Long endTimeMilliseconds) { executionTimeInMilliseconds = endTimeMilliseconds - startTimeInMilliseconds; executionTime = executionTimeInMilliseconds + " ms"; } }