八、将毫秒转成 1天2小时2分33秒格式

1.如何将毫秒转化成像1天2小时2分33秒格式

写本篇博文完全是为了功能积累,以便后续遇到相似功能时提高开发效率。

public static String getArgRate(String fenZi, String fenMu) {
        if (StringUtils.isEmpty(fenZi) || StringUtils.isEmpty(fenMu)) {
            return "--";
        }
        BigDecimal time = new BigDecimal(fenZi);//时间(毫秒)
        BigDecimal num = new BigDecimal(fenMu);//订单量
        BigDecimal decimalZero = BigDecimal.ZERO;
        BigDecimal oneMin = new BigDecimal("60000");//分钟的毫秒值
        BigDecimal oneHour = new BigDecimal("3600000");//小时的毫秒值
        BigDecimal oneDay = new BigDecimal("86400000");//天的的毫秒值
        if (num.compareTo(decimalZero) == 0 || num.compareTo(decimalZero) < 0) {
            return "--";
        }
        boolean lessOneMin=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneMin)==-1;//小于1分钟
        boolean equalOneMin=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneMin)==0;//等于1分钟
        boolean biggerOneMin=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneMin)==1;//大于1分钟
        boolean lessOnehour=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneHour)==-1;//小于1小时
        boolean equalOnehour=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneHour)==0;//等于1小时
        boolean biggerOnehour=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneHour)==1;//大于1小时
        boolean lessOneDay=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneDay)==-1;//小于1天
        boolean equalOneDay=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneDay)==0;//大于1天
        boolean biggerOneDay=time.divide(num,0,BigDecimal.ROUND_HALF_UP).compareTo(oneDay)==1;//大于1天

        String lastString="";
        BigDecimal millTime =time.divide(num,0,BigDecimal.ROUND_HALF_UP).divide(new BigDecimal("1000"));//时间(毫秒)
        //sum(支付完成时间-提交订单时间)/订单量  不足60分钟记为秒   超过60分钟记为小时   超过24小时,记为天; 1天10小时20分30秒
        if(lessOnehour){
            if(equalOneMin){
                lastString="1分0秒";
            }else if(biggerOneMin){
                long minute=millTime.longValue()/1000;//转化成分钟
                long leftMil=millTime.longValue()%60;//剩余秒
                //00分00秒
                lastString=minute+"分"+leftMil+"秒";
            }else{
                //小于1小时: 100.22秒
                BigDecimal res = millTime.setScale(2, BigDecimal.ROUND_HALF_UP);
                lastString=String.valueOf(res)+ "秒";
            }
        }else if(equalOnehour){
            BigDecimal res = millTime.setScale(2, BigDecimal.ROUND_HALF_UP);
            lastString="1小时0分0秒";
        }else if(biggerOnehour&&lessOneDay){
            //小时
            long hour=millTime.longValue()/3600;//转换成小时
            long leftMill=millTime.longValue()%3600;//剩余的秒数
            //分钟
            long minute=leftMill/60;//转化成分钟
            long finalLeftMil=leftMill%60;//剩余秒
            //00分00秒
            lastString=hour+"小时"+minute+"分"+finalLeftMil+"秒";
        }else if(equalOneDay){
            lastString=1+"天"+0+"小时"+0+"分"+0+"秒";
        }else if(biggerOneDay){
            //天
            long day=millTime.longValue()/86400;//转换成天
            long dayLeftTime=millTime.longValue()%86400;//剩余的秒数
            //小时
            long hour=dayLeftTime/3600;//转换成小时
            long leftMill=dayLeftTime%3600;//剩余的秒数
            //分钟
            long minute=leftMill/60;//转化成分钟
            long finalLeftMil=leftMill%60;//剩余秒
            //00分00秒
            lastString=day+"天"+hour+"小时"+minute+"分"+finalLeftMil+"秒";
        }else{
            lastString="--";
        }
        return lastString;

    }

 

posted @ 2020-02-17 19:50  爱笑的berg  阅读(289)  评论(0)    收藏  举报