From 19fd657f5a51cdeecc1a3fecff4b9cb8df078f53 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 19 九月 2024 10:46:57 +0800
Subject: [PATCH] 增加计算年龄值与单位方法

---
 ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java |   37 ++++++++++++++++++++++++++++++++-----
 1 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
index 452077c..d170569 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/utils/DateUtils.java
@@ -3,11 +3,7 @@
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
+import java.time.*;
 import java.util.Calendar;
 import java.util.Date;
 
@@ -180,4 +176,35 @@
             w = 0;
         return weekDays[w];
     }
+
+    /**
+     * 鏍规嵁鐢熸棩璁$畻骞撮緞鍊间互鍙婂勾榫勫崟浣�
+     * @param birthday 鐢熸棩
+     * @return
+     */
+    public static AgeResult calculateAge(Date birthday){
+        LocalDate currentDate = LocalDate.now();
+        LocalDate birthLocalDate = birthday.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        Period period = Period.between(birthLocalDate, currentDate);
+        if (period.getYears() > 0){
+            return new AgeResult(period.getYears(),1);
+        }
+        if (period.getMonths() > 0){
+            return new AgeResult(period.getMonths(),2);
+        }
+        LocalDateTime birthDateTime = birthday.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+        LocalDateTime currentDateTime = LocalDateTime.now();
+        Duration duration = Duration.between(birthDateTime, currentDateTime);
+        long days = duration.toDays();
+        if (days > 0){
+            return new AgeResult((int) days,3);
+        }
+        long hours = duration.toHours();
+        if (hours > 0){
+            return new AgeResult((int) hours,4);
+        }
+        long minutes = duration.toMinutes();
+        return new AgeResult((int) minutes,5);
+    }
 }
+

--
Gitblit v1.8.0