From 1ad2f74f3c8c6872d57c285809d2384bd3946aa3 Mon Sep 17 00:00:00 2001 From: renkang <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 13 一月 2025 09:16:35 +0800 Subject: [PATCH] 客户资料 巡检任务业务 --- server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java b/server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java index 37b9180..df82f83 100644 --- a/server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java +++ b/server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java @@ -39,12 +39,15 @@ * 浠ュ勾涓哄崟浣嶇浉宸负锛�6骞� * 浠ユ湀涓哄崟浣嶇浉宸负锛�73涓湀 * 浠ユ棩涓哄崟浣嶇浉宸负锛�2220澶� - * @param fromDate + * @param toDateOrigin * @return */ - public static DateCompare dayCompare(Date fromDate,Date toDateOrigin,Date freeStart,Date freeEnd){ + public static DateCompare dayCompare(Date fromDateOrigin,Date toDateOrigin,Date freeStart,Date freeEnd){ //寮�濮嬫椂闂村線鍚庡欢浼革紝闄ゅ幓鏈夋晥鏃舵湡 - fromDate = DateUtil.addDaysToDate(fromDate,getIntersectingDays(fromDate,DateUtil.addDaysToDate(toDateOrigin,1),freeStart,DateUtil.addDaysToDate(freeEnd,1))); + Date fromDate = DateUtil.addDaysToDate(fromDateOrigin,getIntersectingDays(fromDateOrigin,DateUtil.addDaysToDate(toDateOrigin,1), + freeStart, + Objects.isNull(freeEnd)?null:DateUtil.addDaysToDate(freeEnd,1)) + ); if(toDateOrigin.getTime()< fromDate.getTime()){ return DateCompare.builder().day(0).month(0).year(0).yearFloat(new BigDecimal(0)).monthFloat(new BigDecimal(0)).build(); } @@ -76,7 +79,7 @@ } yearFloat = yearFloat.add(new BigDecimal(1.0*yearDays).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP)); } - int monthDays = day - (DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate)+1) ; + int monthDays = day - (DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate)) ; if(monthDays!=0){ if(monthDays <0){ month = month-1; @@ -141,6 +144,9 @@ } public static int getIntersectingDays(Date start1, Date end1, Date start2, Date end2) { + if(Objects.isNull(start2)||Objects.isNull(end2)){ + return 0; + } Date earlierStart = DateUtil.daysBetweenDates(start1,start2)>0? start1 : start2; Date laterEnd = DateUtil.daysBetweenDates(end2,end1)>0 ? end1 : end2; -- Gitblit v1.9.3