TimeUtil

Time的运行

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by EalenXie on 2018/5/28 16:34
 */
public enum TimeUtils {

    getTimeUtil;

    private final int s = 1000, min = s * 60, h = min * 60, d = h * 24;
    private final SimpleDateFormat standardFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    /**
     * @param dayCount 要加减的天数,为正则加,为负则减,为0则表示当前天
     * @return 获取当前天的任意前后天数的时间
     */
    public String anyTimeByCurrentDay(int dayCount) {
        long resultTimeStamp = currentTimestamp() + dayTimestamp(dayCount);
        Date resultTime = new Date(resultTimeStamp);
        return standardFormat.format(resultTime);
    }

    /**
     * @param dayCount  要加减的天数,为正则加,为负则减,为0则表示当前天
     * @param hourCount 要加减的小时数,为正则加,为负则减,为0则表示和当前小时相同
     * @return 获取当前天的任意前后天数, 任意前后小时的时间
     */
    public String anyTimeByCurrentDay(int dayCount, int hourCount) {
        long resultTimeStamp = currentTimestamp() + dayTimestamp(dayCount) + hourTimestamp(hourCount);
        Date resultTime = new Date(resultTimeStamp);
        return standardFormat.format(resultTime);
    }

    /**
     * @param dayCount  要加减的天数,为正则加,为负则减,为0则表示当前天
     * @param hourCount 要加减的小时数,为正则加,为负则减,为0则表示和当前小时相同
     * @param minCount  要加减的分钟数,为正则加,为负则减,为0则表示和当前分钟相同
     * @return 获取当前天的任意前后天数, 任意前后小时的时间,任意前后分钟的时间
     */
    public String anyTimeByCurrentDay(int dayCount, int hourCount, int minCount) {
        long resultTimeStamp = currentTimestamp() + dayTimestamp(dayCount) + hourTimestamp(hourCount) + minTimestamp(minCount);
        Date resultTime = new Date(resultTimeStamp);
        return standardFormat.format(resultTime);
    }

    /**
     * 将毫秒数换算成消耗的时间 如 : 90061001 换算成 1d 1h 1min 1s 1ms
     *
     * @param ms 消耗的毫秒数
     * @return 根据消耗的毫秒数计算出完整的消耗时间
     */
    public String costTimeByMs(long ms) {
        String result = "";
        long day = ms / d, hour = (ms - day * d) / h, minute = (ms - day * d - hour * h) / min;
        long second = (ms - day * d - hour * h - minute * min) / s;
        long milliSecond = ms - day * d - hour * h - minute * min - second * s;
        if (day != 0) result += day + "d ";
        if (hour != 0) result += hour + "h ";
        if (minute != 0) result += minute + "min ";
        if (second != 0) result += second + "s ";
        result += milliSecond + "ms ";
        return result;
    }

    private long currentTimestamp() {
        return System.currentTimeMillis();
    }

    private long dayTimestamp(int count) {
        return d * count;
    }

    private long hourTimestamp(int count) {
        return h * count;
    }

    private long minTimestamp(int count) {
        return min * count;
    }
}

 

posted on 2019-11-22 17:13  JAVA-ROAD  阅读(279)  评论(0)    收藏  举报

导航