From 63bb8311521746c74ec33783e032549ae36ebca1 Mon Sep 17 00:00:00 2001 From: zhangli <123879394@qq.com> Date: Tue, 30 Sep 2025 14:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=80=BE=E6=9C=9F=E5=A4=A9?= =?UTF-8?q?=E6=95=B0=E5=92=8C=E5=B0=8F=E6=97=B6=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sczx/order/utils/OrderUtil.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/sczx/order/utils/OrderUtil.java b/src/main/java/com/sczx/order/utils/OrderUtil.java index 0020276..75ea9ad 100644 --- a/src/main/java/com/sczx/order/utils/OrderUtil.java +++ b/src/main/java/com/sczx/order/utils/OrderUtil.java @@ -62,7 +62,7 @@ public class OrderUtil { public static Integer getOrderOverdueHours(LocalDateTime endRentTime) { if(endRentTime!=null){ LocalDateTime now = LocalDateTime.now(); - log.info("计算时租逾期小时数,预计还车时间:{}, 当前时间 : {}", endRentTime, now); + log.info("计算间隔小时数,预计还车时间:{}, 当前时间 : {}", endRentTime, now); if(now.isAfter(endRentTime)){ int hours = (int) ChronoUnit.HOURS.between(endRentTime, now); return hours +1; @@ -79,8 +79,14 @@ public class OrderUtil { public static Integer getOrderOverdueDays(LocalDateTime endRentTime) { if(endRentTime!=null){ LocalDateTime now = LocalDateTime.now(); + log.info("计算间隔天数,预计还车时间:{}, 当前时间 : {}", endRentTime, now); if(now.isAfter(endRentTime)){ - return (int) ChronoUnit.DAYS.between(endRentTime, now); + long days = ChronoUnit.DAYS.between(endRentTime, now); + // 检查是否有不足一天的余数 + if (!now.truncatedTo(ChronoUnit.DAYS).equals(endRentTime.plusDays(days).truncatedTo(ChronoUnit.DAYS))) { + return (int) days + 1; + } + return (int) days; } } return 0; @@ -113,9 +119,14 @@ public class OrderUtil { if(startTime!=null&&endTime!=null){ if(startTime.isBefore(endTime)){ if(StringUtils.equalsIgnoreCase(rentalType, RentCarTypeEnum.HOUR_RENTAL.getCode())){ - return (int) ChronoUnit.HOURS.between(startTime, endTime); + return (int) ChronoUnit.HOURS.between(startTime, endTime) +1; } else { - return (int) ChronoUnit.DAYS.between(startTime, endTime); + long days = ChronoUnit.DAYS.between(startTime, endTime) +1; + // 检查是否有不足一天的余数 + if (!endTime.truncatedTo(ChronoUnit.DAYS).equals(endTime.plusDays(days).truncatedTo(ChronoUnit.DAYS))) { + return (int) days + 1; + } + return (int) days; } } }