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