java操作小时数转换

小时数转成时分秒格式

    public static String getDateByHour(double manHour) {
        //格式 对于时分秒操作按照
//        int h = min/3600;分钟/3600就是小时
//        int m = (min%3600)/60;
//        int s = (min%3600)%60;
		//BigDecimal 类操作精准
        BigDecimal manHourBig = new BigDecimal(manHour);
        BigDecimal bigDecimal = new BigDecimal(3600);
        BigDecimal bigDecimalM = new BigDecimal(60);
        //把小时数换算得到秒-->乘法
        BigDecimal multiply = manHourBig.multiply(bigDecimal);
        //得到小时取整-->除法
        int hh = multiply.divide(bigDecimal, 0, BigDecimal.ROUND_DOWN).intValue();
        //取模
        BigDecimal[] results = multiply.divideAndRemainder(bigDecimal);
 		//得到数组中的余数
        BigDecimal result = results[1];
        //得到分钟数-->先取模在除算出对应分钟
        int mm = result.divide(bigDecimalM, 0, BigDecimal.ROUND_DOWN).intValue();
        //秒-->先取模
        BigDecimal[] bigDecimals = result.divideAndRemainder(bigDecimal);
        //数组中的商就是秒
        int ss = bigDecimals[0].intValue();
        //拼接为HH:mm:ss格式
        return hh+":"+mm+":"+ss;
    }

简单调用

public static void main(String[] args){
	String dateByHour = getDateByHour(2.5);
	System.out.println(dateByHour);
}

输出结果

2:30:0

两个时间转成小时数

    public static String getDatePoor(Date nowDate, Date endDate) {
        long nd = 1000 * 24 * 60 * 60;
        long nh = 1000 * 60 * 60;
        long nm = 1000 * 60;
        long diff = endDate.getTime() - nowDate.getTime();
        Integer min = Integer.valueOf((int) (diff / nm));
        if (min <= 0) {
            return new BigDecimal(0).toString();
        }
        BigDecimal bigDecimal = new BigDecimal(min);
        BigDecimal b = new BigDecimal(60);
        BigDecimal divide = bigDecimal.divide(b, 2, BigDecimal.ROUND_HALF_UP);
        return divide.toString();
    }

简单调用

    public static void main(String[] args) throws ParseException {
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String datePoor1 = getDatePoor(
                dateFormat1.parse("2021-10-10 12:00:00" ),
                dateFormat1.parse("2021-10-10 14:30:00" ));
        System.out.println(datePoor1+"h");
        SimpleDateFormat dateFormat2 = new SimpleDateFormat("HH:mm:ss");
        String datePoor2 = getDatePoor(
                dateFormat2.parse("12:00:00" ),
                dateFormat2.parse("14:30:00" ));
        System.out.println(datePoor2+"h");
    }

输出结果

2.50h
2.50h
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值