From 640ff18d2d7f4be02ddb7f8f75e899f05545eb98 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 05 二月 2024 11:56:52 +0800
Subject: [PATCH] 更新bug修改

---
 cloud-server-management/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java |   80 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java b/cloud-server-management/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java
new file mode 100644
index 0000000..d3492ba
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java
@@ -0,0 +1,80 @@
+package com.dsh.course.util;
+
+import java.text.ParseException;
+import java.time.Duration;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * LocalDateTimeUtils
+ * LocalDateTime 时间工具
+ *
+ * @author yudeshan
+ * @version V1.0
+ */
+public class LocalDateTimeUtils {
+    private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22 };
+    private final static String[] constellationArr = new String[] { "摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座" };
+
+
+    /**
+     * 取两个时间相差毫秒数
+     *
+     * @param start 开始时间
+     * @param end   结束时间
+     * @return
+     */
+    public static long betweenMillis(LocalDateTime start, LocalDateTime end) {
+        Duration duration = Duration.between(start, end);
+        return duration.toMillis();
+    }
+
+    /**
+     * 通过生日计算年龄
+     * @param birthDay 生日
+     * @return
+     * @throws ParseException
+     */
+    public static int getAgeByBirth(LocalDate birthDay) throws ParseException {
+        int age = 0;
+       //出生日期晚于当前时间,无法计算
+        LocalDate now=LocalDate.now();
+        if (birthDay.isAfter(now)) {
+            throw new IllegalArgumentException( "生日大于当前时间!");
+        }
+        //当前年份
+        int yearNow = now.getYear();
+        //当前月份
+        int monthNow = now.getMonthValue();
+        //当前日期
+        int dayOfMonthNow = now.getDayOfMonth();
+
+        int yearBirth =birthDay.getYear();
+        int monthBirth = birthDay.getMonthValue();
+        int dayOfMonthBirth = birthDay.getDayOfMonth();
+        //计算整岁数
+        age = yearNow - yearBirth;
+        if (monthNow <= monthBirth) {
+            if (monthNow == monthBirth) {
+                if (dayOfMonthNow < dayOfMonthBirth){
+                    //当前日期在生日之前,年龄减一
+                    age--;
+                }
+            } else {
+                //当前月份在生日之前,年龄减一
+                age--;
+            }
+        }
+        return age;
+    }
+
+    /**
+     * 根据月份计算星座
+     */
+
+    public static String getConstellation(LocalDate date) {
+        Integer month=date.getMonthValue();
+        Integer day=date.getDayOfMonth();
+        return day < dayArr[month - 1] ? constellationArr[month - 1] : constellationArr[month];
+    }
+}

--
Gitblit v1.7.1