From b1fb83530b7105e4aa73e4101727dea945eb01c2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 29 八月 2025 21:48:15 +0800
Subject: [PATCH] bug修改
---
cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java | 86 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 85 insertions(+), 1 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
index 605ec18..7378b85 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
@@ -150,7 +150,7 @@
*/
public static Date parse(String date, String pattern) {
try {
- if(Objects.nonNull(date)) {
+ if (Objects.nonNull(date)) {
return DateUtils.parseDate(date, pattern);
}
} catch (ParseException e) {
@@ -286,6 +286,7 @@
Calendar cal = Calendar.getInstance();
return cal;
}
+
/**
* 毫秒转日期时间
*
@@ -328,5 +329,88 @@
Date dt1 = rightNow.getTime();
return dt1.getTime();
}
+//
+// public static void main(String[] args) throws ParseException {
+// String big = "1997-08-16";
+// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+// int age = DateUtil.age(simpleDateFormat.parse(big));
+// System.out.println(age);
+// }
+
+ /**
+ * 计算年龄
+ *
+ * @param birthDate
+ * @return
+ */
+ public static int age(Date birthDate) {
+ // 当前日历
+ Calendar nowCalendar = Calendar.getInstance();
+ // 生日大于当前日期
+ if (nowCalendar.before(birthDate)) {
+ throw new IllegalArgumentException("The birth date is before current time, it's unbelievable");
+ }
+ // 当前年月日
+ int yearNow = nowCalendar.get(Calendar.YEAR);
+ int monthNow = nowCalendar.get(Calendar.MONTH);
+ int dayNow = nowCalendar.get(Calendar.DAY_OF_MONTH);
+ // 出生日期年月日
+ Calendar birthCalendar = Calendar.getInstance();
+ birthCalendar.setTime(birthDate);
+ int yearBirth = birthCalendar.get(Calendar.YEAR);
+ int monthBirth = birthCalendar.get(Calendar.MONTH);
+ int dayBirth = birthCalendar.get(Calendar.DAY_OF_MONTH);
+ // 粗计算年龄
+ int age = yearNow - yearBirth;
+ // 当前月份小于出生月份年龄减一
+ if (monthNow < monthBirth) {
+ age--;
+ }
+ // 当前月份等于出生月份,日小于生日年龄减一
+ else if (monthNow == monthBirth && dayNow < dayBirth) {
+ age--;
+ }
+ // 返回年龄值
+ return age;
+ }
+
+
+ // 获取近一周的开始时间
+ public static Date getLastWeekStartDate() {
+ Calendar calendar = Calendar.getInstance();
+ // 设置为当前日期的前一周
+ calendar.add(Calendar.DAY_OF_YEAR, -7);
+ // 获取近一周的开始时间
+ return calendar.getTime();
+ }
+
+
+ // 获取近一个月的开始时间
+ public static Date getLastMonthStartDate() {
+ Calendar calendar = Calendar.getInstance();
+ // 设置为当前日期的前一个月
+ calendar.add(Calendar.MONTH, -1);
+ // 获取近一个月的开始时间
+ return calendar.getTime();
+ }
+
+ // 获取近一年的开始时间
+ public static Date getLastYearStartDate() {
+ Calendar calendar = Calendar.getInstance();
+ // 设置为当前日期的前一年
+ calendar.add(Calendar.YEAR, -1);
+ // 获取近一年的开始时间
+ return calendar.getTime();
+ }
+
+
+ // 获取昨天的时间
+ public static Date getLastOfDate() {
+ Calendar calendar = Calendar.getInstance();
+ // 设置为当前日期的前一个月
+ calendar.add(Calendar.DAY_OF_YEAR, -1);
+ // 获取近一个月的开始时间
+ return calendar.getTime();
+ }
}
--
Gitblit v1.7.1