Here you can find the source of getReadableMillis(long startMillis, long endMillis)
public static String getReadableMillis(long startMillis, long endMillis)
//package com.java2s; public class Main { public static String getReadableMillis(long startMillis, long endMillis) { StringBuilder sb = new StringBuilder(); double elapsedSeconds = (endMillis - startMillis) / 1000.0; int elapsedSecs = ((int) elapsedSeconds) % 60; int elapsedMinutes = (int) (elapsedSeconds / 60.0); int elapsedMins = elapsedMinutes % 60; int elapsedHrs = elapsedMinutes / 60; int elapsedHours = elapsedHrs % 24; int elapsedDays = elapsedHrs / 24; if (elapsedDays > 0) { boolean mins = elapsedHours > 0; sb.append(elapsedDays);/*from w w w .j av a2 s.co m*/ sb.append(" day" + (elapsedDays > 1 ? "s" : "") + (mins ? ", " : ".")); if (mins) { boolean secs = elapsedMins > 0; if (!secs) { sb.append("and "); } sb.append(elapsedHours); sb.append(" hour" + (elapsedHours > 1 ? "s" : "") + (secs ? ", " : ".")); if (secs) { boolean millis = elapsedSecs > 0; if (!millis) { sb.append("and "); } sb.append(elapsedMins); sb.append(" minute" + (elapsedMins > 1 ? "s" : "") + (millis ? ", " : ".")); if (millis) { sb.append("and "); sb.append(elapsedSecs); sb.append(" second" + (elapsedSecs > 1 ? "s" : "") + "."); } } } } else if (elapsedHours > 0) { boolean mins = elapsedMins > 0; sb.append(elapsedHours); sb.append(" hour" + (elapsedHours > 1 ? "s" : "") + (mins ? ", " : ".")); if (mins) { boolean secs = elapsedSecs > 0; if (!secs) { sb.append("and "); } sb.append(elapsedMins); sb.append(" minute" + (elapsedMins > 1 ? "s" : "") + (secs ? ", " : ".")); if (secs) { sb.append("and "); sb.append(elapsedSecs); sb.append(" second" + (elapsedSecs > 1 ? "s" : "") + "."); } } } else if (elapsedMinutes > 0) { boolean secs = elapsedSecs > 0; sb.append(elapsedMinutes); sb.append(" minute" + (elapsedMinutes > 1 ? "s" : "") + (secs ? " " : ".")); if (secs) { sb.append("and "); sb.append(elapsedSecs); sb.append(" second" + (elapsedSecs > 1 ? "s" : "") + "."); } } else if (elapsedSeconds > 0) { sb.append((int) elapsedSeconds); sb.append(" second" + (elapsedSeconds > 1 ? "s" : "") + "."); } else { sb.append("None."); } return sb.toString(); } }