Java Millisecond Convert millisecondsToHuman(long ms)

Here you can find the source of millisecondsToHuman(long ms)

Description

Convert from milliseconds to a human readable format with days, hours, minutes, seconds and the remaining milliseconds.

License

Open Source License

Parameter

Parameter Description
ms The milliseconds to convert

Return

The milliseconds converted a human readable format..

Declaration

public static String millisecondsToHuman(long ms) 

Method Source Code

//package com.java2s;
/*/*  ww w . j  a v  a  2 s.  c  om*/
 * #%L
 * Bitrepository Integrity Service
 * %%
 * Copyright (C) 2010 - 2012 The State and University Library, The Royal Library and The State Archives, Denmark
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as 
 * published by the Free Software Foundation, either version 2.1 of the 
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Lesser Public License for more details.
 * 
 * You should have received a copy of the GNU General Lesser Public 
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/lgpl-2.1.html>.
 * #L%
 */

public class Main {
    /** Milliseconds per second.*/
    public static final int MS_PER_S = 1000;
    /** Seconds per minute.*/
    public static final int S_PER_M = 60;
    /** Minutes per hour.*/
    public static final int M_PER_H = 60;
    /** Hours per day.*/
    public static final int H_PER_D = 24;
    /** Milliseconds per minute.*/
    public static final int MS_PER_MINUTE = MS_PER_S * S_PER_M;
    /** Milliseconds per hour.*/
    public static final int MS_PER_HOUR = MS_PER_MINUTE * M_PER_H;
    /** Milliseconds per day.*/
    public static final long MS_PER_DAY = MS_PER_HOUR * H_PER_D;

    /**
     * Convert from milliseconds to a human readable format with days, hours, minutes, seconds and 
     * the remaining milliseconds.
     * @param ms The milliseconds to convert
     * @return The milliseconds converted a human readable format..
     */
    public static String millisecondsToHuman(long ms) {
        StringBuilder sb = new StringBuilder();
        boolean includeRemainingMs = true;
        if (ms >= MS_PER_MINUTE) {
            includeRemainingMs = false;
        }
        if (ms >= 0) {
            if (ms >= MS_PER_DAY) {
                sb.append(millisecondsToDays(ms));
            }
            ms = (ms % MS_PER_DAY);
            if (ms >= 0) {
                if (ms >= MS_PER_HOUR) {
                    sb.append(" " + millisecondsToHours(ms));
                }
                ms = (ms % MS_PER_HOUR);
                if (ms >= 0) {
                    if (ms >= MS_PER_MINUTE) {
                        sb.append(" " + millisecondsToMinutes(ms));
                    }
                    ms = (ms % MS_PER_MINUTE);
                    if (ms >= 0) {
                        if (ms >= MS_PER_S) {
                            sb.append(" " + millisecondsToSeconds(ms));
                        }
                        ms = (ms % MS_PER_S);
                        if (ms >= 0 && includeRemainingMs) {
                            sb.append(" " + ms + " ms");
                        }
                    }
                }
            }
        }
        return sb.toString();
    }

    /**
     * Convert from milliseconds to days.
     * @param ms The milliseconds to convert
     * @return The milliseconds converted into days.
     */
    public static String millisecondsToDays(long ms) {
        int days = (int) (ms / (MS_PER_S * S_PER_M * M_PER_H * H_PER_D));
        return days + "d";
    }

    /**
     * Convert from milliseconds to hours.
     * @param ms The milliseconds to convert
     * @return The milliseconds converted into hours.
     */
    public static String millisecondsToHours(long ms) {
        int hours = (int) (ms / (MS_PER_S * S_PER_M * M_PER_H));
        return hours + "h";
    }

    /**
     * Convert from milliseconds to minutes.
     * @param ms The milliseconds to convert
     * @return The milliseconds converted into minutes.
     */
    public static String millisecondsToMinutes(long ms) {
        int minutes = (int) (ms / (MS_PER_S * S_PER_M));
        return minutes + "m";
    }

    /**
     * Convert from milliseconds to seconds.
     * @param ms The milliseconds to convert
     * @return The milliseconds converted into seconds.
     */
    public static String millisecondsToSeconds(long ms) {
        int seconds = (int) (ms / MS_PER_S);
        return seconds + "s";
    }
}

Related

  1. millisecondsToDateTime(long timeMillis)
  2. millisecondsToDays(long p_timeInMilliseconds, long p_secondsInDay)
  3. millisecondsToHHMMSS(long milliseconds)
  4. milliSecondsToHMS(long l)
  5. milliSecondsToHMS(long numMillis)
  6. millisecondsToHumanDateWithSeconds(long milliseconds)
  7. millisecondsToHumanTime(long period)
  8. millisecondsToNanoseconds(Long milliseconds)
  9. millisecondsToSeconds(long ms)