long m = (time - h * 60 * 60 * 1000) / (60 * 1000);
long s = (time - h * 60 * 60 * 1000 - m * 60 * 1000) / 1000;
long ms = time % 1000;
- return String.format("%1$d:%2$02d:%3$02d.%4$03ds", h, m, s, ms);
+ final String format;
+ if (h > 0) {
+ format = "%1$d:%2$02d:%3$02d.%4$03ds";
+ } else if (m > 0) {
+ format = "%2$d:%3$02d.%4$03ds";
+ } else {
+ format = "%3$d.%4$03ds";
+ }
+ return String.format(format, h, m, s, ms);
}
static Properties loadProperties(String[] args) {
@Test
public void shouldFormatTime() {
assertThat(Main.formatTime(1 * 60 * 60 * 1000 + 2 * 60 * 1000 + 3 * 1000 + 400), is("1:02:03.400s"));
- assertThat(Main.formatTime(2 * 60 * 1000 + 3 * 1000 + 400), is("0:02:03.400s"));
- assertThat(Main.formatTime(3 * 1000 + 400), is("0:00:03.400s"));
- assertThat(Main.formatTime(400), is("0:00:00.400s"));
+ assertThat(Main.formatTime(2 * 60 * 1000 + 3 * 1000 + 400), is("2:03.400s"));
+ assertThat(Main.formatTime(3 * 1000 + 400), is("3.400s"));
+ assertThat(Main.formatTime(400), is("0.400s"));
}
}