From 074caee550216dfd4bb676677ae33cbd837c5710 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期三, 27 八月 2025 18:17:21 +0800
Subject: [PATCH] 暂存0827

---
 java110-utils/src/main/java/com/java110/utils/util/DateUtil.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
index 11c044a..11be8ac 100755
--- a/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/DateUtil.java
@@ -6,6 +6,9 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -36,6 +39,7 @@
     public static final String DATE_FORMATE_STRING_N = "HHmmss";
     public static final String DATE_FORMATE_STRING_O = "yyyyMMddHHmm";
     public static final String DATE_FORMATE_STRING_Q = "yyyy-MM";
+    private static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
 
 
     static {
@@ -1016,4 +1020,32 @@
 
         return result.toString();
     }
+
+    /**
+     * 璁$畻涓や釜瀛楃涓叉棩鏈熶箣闂寸殑鏈堟暟锛堣秴杩囦竴涓暣鏈堝垯+1锛�
+     * @param startDateStr 寮�濮嬫棩鏈熷瓧绗︿覆锛堟牸寮忥細yyyy-MM-dd锛�
+     * @param endDateStr 缁撴潫鏃ユ湡瀛楃涓诧紙鏍煎紡锛歽yyy-MM-dd锛�
+     * @return 鏈堟暟宸�
+     */
+    public static int calculateMonths(String startDateStr, String endDateStr) {
+        // 1. 灏嗗瓧绗︿覆瑙f瀽涓篖ocalDate
+        LocalDate startDate = LocalDate.parse(startDateStr, DEFAULT_FORMATTER);
+        LocalDate endDate = LocalDate.parse(endDateStr, DEFAULT_FORMATTER);
+        // 2. 纭繚寮�濮嬫棩鏈熷湪缁撴潫鏃ユ湡涔嬪墠
+        if (startDate.isAfter(endDate)) {
+            LocalDate temp = startDate;
+            startDate = endDate;
+            endDate = temp;
+        }
+        // 3. 璁$畻瀹屾暣鏈堟暟
+        Period period = Period.between(startDate, endDate);
+        int fullMonths = period.getYears() * 12 + period.getMonths();
+
+        // 4. 鑻ュぉ鏁板樊>0锛岃鏄庤秴杩囨暣鏈堬紝棰濆鍔�1
+        if (period.getDays() > 0) {
+            fullMonths++;
+        }
+        return fullMonths;
+    }
+
 }

--
Gitblit v1.8.0