From ee9cb0da4a43bcf523ebb157678f64a2895fba1a Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期二, 10 十月 2023 15:30:38 +0800 Subject: [PATCH] 10.10 --- 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