Convert the given time duration into a human-readable string format. - Java File Path IO

Java examples for File Path IO:Byte Array

Description

Convert the given time duration into a human-readable string format.

Demo Code

/**//from w  w w  . j av  a 2s .  c o  m
 *
 * jerry - Common Java Functionality
 * Copyright (c) 2012-2015, Sandeep Gupta
 * 
 * http://sangupta.com/projects/jerry
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *       http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        long millis = 2;
        System.out.println(getReadableTimeDuration(millis));
    }

    /**
     * Convert the given time duration into a human-readable string format.
     * 
     * @param millis
     * @return
     */
    public static String getReadableTimeDuration(long millis) {
        long seconds = millis / 1000l;
        long minutes = seconds / 60l;
        long hours = minutes / 60l;
        long days = hours / 24l;

        hours = hours % 24l;
        minutes = minutes % 60l;
        seconds = seconds % 60l;
        millis = millis % 1000l;

        String s = "";
        if (days > 0) {
            s += days + getPluralIfNeeded(days, " day ", " days ");
        }
        if (hours > 0) {
            s += hours + getPluralIfNeeded(hours, " hour ", " hours ");
        }
        if (minutes > 0) {
            s += minutes
                    + getPluralIfNeeded(minutes, " minute ", " minutes ");
        }
        if (seconds > 0) {
            s += seconds
                    + getPluralIfNeeded(seconds, " second ", " seconds ");
        }
        if (millis > 0) {
            s += millis + getPluralIfNeeded(millis, " milli", " millis");
        }

        return s.trim();
    }

    /**
     * Return the singular string if the value is ONE, or the plural one.
     * 
     * @param value
     * @param singular
     * @param plural
     * @return
     */
    public static String getPluralIfNeeded(long value, String singular,
            String plural) {
        if (value == 1) {
            return singular;
        }

        return plural;
    }
}

Related Tutorials