时间转换为人类可读

发布时间 2023-04-20 17:12:44作者: 黄河大道东
<dependency>
	<groupId>com.github.xkzhangsan</groupId>
	<artifactId>xk-time</artifactId>
	<version>3.2.4</version>
</dependency>
    /**
     * 将时长转换为人类可读时间(精确到分钟)
     * 例如 1440 === > 1天
     * 例如 70 ===> 1小时10分钟
     */
    public static String calculationDuration(long duration, TimeUnit timeUnit) {
        String durationStr = null;
        if (duration <= 60) {
            durationStr = duration + "分钟";
        } else if (duration <= 1440) {
            String tmp = DateTimeConverterUtil.unitConversionPreciseString(duration, timeUnit, TimeUnit.HOURS, 0, RoundingMode.DOWN);
            long l = duration - Long.parseLong(tmp) * 60;
            if ("24".equals(tmp)) {
                durationStr = "1天";
            } else {
                durationStr = tmp + "小时";
                if (l > 0) {
                    durationStr = durationStr + l + "分钟";
                }
            }
        } else {
            String tmp = DateTimeConverterUtil.unitConversionPreciseString(duration, timeUnit, TimeUnit.DAYS, 0, RoundingMode.DOWN);
            long l = duration - Long.parseLong(tmp) * 1440;
            String tmp2 = DateTimeConverterUtil.unitConversionPreciseString(l, timeUnit, TimeUnit.HOURS, 0, RoundingMode.DOWN);
            long l1 = l - Long.parseLong(tmp2) * 60;
            durationStr = tmp + "天" + tmp2 + "小时" + l1 + "分钟";
        }
        return durationStr;
    }