From f7e51fc7c91e474e5c0bcc79c47f074c0a59b5c3 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 11 十月 2023 20:03:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 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..9c752b6 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
@@ -328,5 +328,83 @@
         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