From b81c72d58016bb15d2d47331da258e621245cfb5 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 03 十二月 2024 16:22:40 +0800
Subject: [PATCH] 客户资料 巡检任务业务

---
 server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java |   25 +++++++++++++++++--------
 1 files changed, 17 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 1335d95..be6c0ff 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
@@ -67,14 +67,23 @@
         BigDecimal monthFloat = new BigDecimal(month) ;
 
         int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ;
-        if(yearDays>0){
-            yearFloat = yearFloat.add(new BigDecimal(yearDays).divide(new BigDecimal(365), 2,RoundingMode.FLOOR));
+        if(yearDays!=0){
+            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) ;
-        if(monthDays>0){
-            monthFloat = monthFloat.add(new BigDecimal(monthDays).divide(new BigDecimal(30), 2,RoundingMode.FLOOR));
+        if(monthDays!=0){
+            monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP));
         }
         return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build();
+    }
+
+    public static void main(String[] args) {
+        DateCompare dateCompare =   DateCompare.dayCompare(DateUtil.getDateFromString("2024-12-01 00:00:00"),DateUtil.getDateByString("2024-12-31 00:00:00")
+                ,DateUtil.getDateFromString("2024-12-01 00:00:00"),DateUtil.getDateFromString("2024-12-02 00:00:00"));
+        System.out.println(dateCompare.monthFloat);
+        System.out.println(dateCompare.yearFloat);
+        System.out.println(dateCompare.yearFloat.multiply(new BigDecimal(365.0)));
+        System.out.println(new BigDecimal(29.0).divide(new BigDecimal(365.0),12,  RoundingMode.HALF_UP).multiply(new BigDecimal(365.0)));
     }
     public static DateCompare monthYearCompare(Date fromDate,Date toDate ){
         //寮�濮嬫椂闂村線鍚庡欢浼革紝闄ゅ幓鏈夋晥鏃舵湡
@@ -96,12 +105,12 @@
         BigDecimal monthFloat = new BigDecimal(month) ;
 
         int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ;
-        if(yearDays>0){
-            yearFloat = yearFloat.add(new BigDecimal(yearDays).divide(new BigDecimal(365), 2,RoundingMode.FLOOR));
+        if(yearDays!=0){
+            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) ;
-        if(monthDays>0){
-            monthFloat = monthFloat.add(new BigDecimal(monthDays).divide(new BigDecimal(30), 2,RoundingMode.FLOOR));
+        if(monthDays!=0){
+            monthFloat = monthFloat.add(new BigDecimal(1.0*monthDays*12).divide(new BigDecimal(365.0), 15,RoundingMode.HALF_UP));
         }
         return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build();
     }

--
Gitblit v1.9.3