From 6c837e44d1d185472a6a27eed3b6a523ae5a4013 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 15 三月 2024 09:44:30 +0800
Subject: [PATCH] bug修改
---
cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java | 81 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java b/cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java
new file mode 100644
index 0000000..d4511d4
--- /dev/null
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java
@@ -0,0 +1,81 @@
+package com.dsh.competition.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