From 3e456f3e812ead6a19e80cfbdbf86ae0263d50b9 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 12 七月 2024 22:39:45 +0800 Subject: [PATCH] 完成7.4迭代内容,通过冒烟测试 --- finance-common/src/main/java/com/finance/common/utils/DateUtils.java | 46 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 37 insertions(+), 9 deletions(-) diff --git a/finance-common/src/main/java/com/finance/common/utils/DateUtils.java b/finance-common/src/main/java/com/finance/common/utils/DateUtils.java index 16bf656..742eb03 100644 --- a/finance-common/src/main/java/com/finance/common/utils/DateUtils.java +++ b/finance-common/src/main/java/com/finance/common/utils/DateUtils.java @@ -1,6 +1,7 @@ package com.finance.common.utils; import cn.hutool.core.convert.NumberChineseFormatter; +import cn.hutool.core.date.DateUtil; import java.lang.management.ManagementFactory; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -206,14 +207,14 @@ public static Map<String, Date> getMonthDate(Date date) { Map<String, Date> map = new HashMap<>(2); Calendar cal = Calendar.getInstance(); - //设置指定日期 + // 设置指定日期 cal.setTime(date); - //获取当月第一天日期 + // 获取当月第一天日期 int first = cal.getActualMinimum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, first); Date firstDay = cal.getTime(); map.put("first", firstDay); - //获取当月最后一天日期 + // 获取当月最后一天日期 int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, last); Date lastDay = cal.getTime(); @@ -279,14 +280,14 @@ public static Map<String, Date> getYearDate(Date date) { Map<String, Date> map = new HashMap<>(2); Calendar cal = Calendar.getInstance(); - //设置指定日期 + // 设置指定日期 cal.setTime(date); - //获取本年第一天日期 + // 获取本年第一天日期 int first = cal.getActualMinimum(Calendar.DAY_OF_YEAR); cal.set(Calendar.DAY_OF_YEAR, first); Date firstDay = cal.getTime(); map.put("first", firstDay); - //获取本年最后一天日期 + // 获取本年最后一天日期 int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR); cal.set(Calendar.DAY_OF_YEAR, last); Date lastDay = cal.getTime(); @@ -376,7 +377,7 @@ * @throws Exception 异常 */ public static String getNowQuarter() throws Exception { - //当前所在季度 + // 当前所在季度 Date date = new Date(); char quarterOfYear = String.valueOf(getQuarterOfYear(date)).toCharArray()[0]; String quarterOfYearStr = NumberChineseFormatter.numberCharToChinese(quarterOfYear, false); @@ -409,13 +410,40 @@ return DateUtils.toDate(startDate); } - //测试 getNowQuarter + public static Date getQuarterDateEnd(String quarter) { + // 提取年份和季度信息 + int year = Integer.parseInt(quarter.substring(0, 4)); + int quarterNumber = NumberChineseFormatter.chineseToNumber(quarter.substring(5, 6)); // 季度数字 + // 计算季度初的日期 + LocalDate startDate; + switch (quarterNumber) { + case 1: + startDate = LocalDate.of(year, 3, 1); + break; + case 2: + startDate = LocalDate.of(year, 6, 1); + break; + case 3: + startDate = LocalDate.of(year, 9, 1); + break; + case 4: + startDate = LocalDate.of(year, 12, 1); + break; + default: + throw new IllegalArgumentException("Invalid quarter number: " + quarterNumber); + } + return DateUtils.toDate(startDate); + } + + // 测试 getNowQuarter public static void main(String[] args) throws Exception { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowQuarter = getNowQuarter(); System.out.println(nowQuarter); System.out.println(NumberChineseFormatter.chineseToNumber("一")); - System.out.println(simpleDateFormat.format(getQuarterDate("2024年一季度"))); + System.out.println(simpleDateFormat.format(getQuarterDateEnd("2024年一季度"))); + String month = DateUtil.format(getQuarterDateEnd("2024年一季度"), "MM"); + System.out.println(Double.parseDouble(month)); System.out.println(simpleDateFormat.format(getQuarterDate("2024年二季度"))); System.out.println(simpleDateFormat.format(getQuarterDate("2024年三季度"))); System.out.println(simpleDateFormat.format(getQuarterDate("2024年四季度"))); -- Gitblit v1.7.1