package com.jasonrobinson.racer.util; import java.util.Formatter; import java.util.Locale; public class RacerTimeUtils { private static final String ELAPSED_TIME_HMMSS = "%1$d:%2$02d:%3$02d"; private static final String ELAPSED_TIME_MMSS = "%1$02d:%2$02d"; private RacerTimeUtils() { } // I would use DateUtils.formatElapsedTime, but it's bugged for hours > 100 public static CharSequence formatElapsedTime(long elapsedSeconds) { long hours = 0; long minutes = 0; long seconds = 0; if (elapsedSeconds >= 3600) { hours = elapsedSeconds / 3600; elapsedSeconds -= hours * 3600; } if (elapsedSeconds >= 60) { minutes = elapsedSeconds / 60; elapsedSeconds -= minutes * 60; } seconds = elapsedSeconds; Formatter f = new Formatter(new StringBuilder(10), Locale.getDefault()); if (hours > 0) { return f.format(ELAPSED_TIME_HMMSS, hours, minutes, seconds).toString(); } else { return f.format(ELAPSED_TIME_MMSS, minutes, seconds).toString(); } } }