八、将毫秒转成 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;
}
细水长流,打磨濡染,渐趋极致,才是一个人最好的状态。

浙公网安备 33010602011771号