From 6ad07bc0ea2f00bc676fd6a724de630760544a50 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 07 二月 2025 11:41:21 +0800
Subject: [PATCH] 客户资料 巡检任务业务
---
server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java | 22 ++++++++++++++--------
1 files changed, 14 insertions(+), 8 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 38c1273..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();
}
@@ -67,7 +70,7 @@
BigDecimal yearFloat = new BigDecimal(year) ;
BigDecimal monthFloat = new BigDecimal(month) ;
- int yearDays = day - (DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate)+1);
+ int yearDays = day - (DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate));
if(yearDays!=0){
if(yearDays <0){
year = year-1;
@@ -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;
@@ -89,7 +92,7 @@
}
public static void main(String[] args) {
- DateCompare dateCompare = DateCompare.monthYearCompare(DateUtil.getDateFromString("2025-03-02 00:00:00"),DateUtil.getDateByString("2025-06-02 00:00:00") );
+ DateCompare dateCompare = DateCompare.monthYearCompare(DateUtil.getDateFromString("2025-06-03 00:00:00"),DateUtil.getDateByString("2025-09-02 00:00:00") );
System.out.println(dateCompare.day);
System.out.println(dateCompare.monthDays);
System.out.println(dateCompare.month);
@@ -119,7 +122,7 @@
BigDecimal yearFloat = new BigDecimal(year) ;
BigDecimal monthFloat = new BigDecimal(month) ;
- int yearDays = day - (DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate)+1);
+ int yearDays = day - (DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate));
if(yearDays!=0){
if(yearDays <0){
year = year-1;
@@ -128,7 +131,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