From 4b5624af301dfbdcf54b65dc55aadde1b6a8efd5 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 24 七月 2024 19:55:24 +0800
Subject: [PATCH] bug修改,查询季度写死“2024年一季度”

---
 finance-common/src/main/java/com/finance/common/utils/DateUtils.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 57 insertions(+), 2 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 742eb03..e3349e7 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
@@ -379,10 +379,42 @@
     public static String getNowQuarter() throws Exception {
         // 当前所在季度
         Date date = new Date();
-        char quarterOfYear = String.valueOf(getQuarterOfYear(date)).toCharArray()[0];
-        String quarterOfYearStr = NumberChineseFormatter.numberCharToChinese(quarterOfYear, false);
+        // char quarterOfYear = String.valueOf(getQuarterOfYear(date)).toCharArray()[0];
+        int quarterOfYear = DateUtil.quarter(date);
+        String quarterOfYearStr = NumberChineseFormatter.numberCharToChinese((char) quarterOfYear,
+                false);
         LocalDate now = LocalDate.now();
         return String.format("%s年%s季度", now.getYear(), quarterOfYearStr);
+    }
+
+    /**
+     * 获取上一季度字符串
+     *
+     * @return 当前季度字符串
+     * @throws Exception 异常
+     */
+    public static String getPreviousQuarter() throws Exception {
+        // 当前日期
+        LocalDate now = LocalDate.now();
+        // 当前月份
+        int currentMonth = now.getMonthValue();
+        // 计算上季度的月份
+        int previousQuarterMonth = currentMonth - 3;
+        int previousQuarterYear = now.getYear();
+
+        if (previousQuarterMonth <= 0) {
+            previousQuarterMonth += 12;
+            previousQuarterYear -= 1;
+        }
+
+        // 计算上季度的季度数
+        int previousQuarter = (previousQuarterMonth - 1) / 3 + 1;
+        // 将季度数转换为汉字
+        String quarterOfYearStr = NumberChineseFormatter.numberCharToChinese(
+                (char) (previousQuarter + '0'), false);
+
+        // 返回上季度的年份和季度
+        return String.format("%s年%s季度", previousQuarterYear, quarterOfYearStr);
     }
 
     public static Date getQuarterDate(String quarter) {
@@ -447,5 +479,28 @@
         System.out.println(simpleDateFormat.format(getQuarterDate("2024年二季度")));
         System.out.println(simpleDateFormat.format(getQuarterDate("2024年三季度")));
         System.out.println(simpleDateFormat.format(getQuarterDate("2024年四季度")));
+        System.out.println(
+                DateUtil.format(getQuarterDateEnd(getPreviousQuarter()), "yyyy-MM-dd HH:mm:ss"));
+        System.out.println(
+                DateUtil.format(getQuarterDate(getPreviousQuarter()), "yyyy-MM-dd HH:mm:ss"));
+        System.out.println(getLastYearQuarter("2024年一季度"));
+    }
+
+    public static String getLastYearQuarter(String previousQuarter) {
+        // 提取年份和季度信息
+        String year = previousQuarter.substring(0, 4);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        try {
+            // 今年
+            Date date = sdf.parse(year);
+            // 根据date获取去年的日期
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            calendar.add(Calendar.YEAR, -1);
+            Date lastYear = calendar.getTime();
+            return String.format("%s年%s", sdf.format(lastYear), previousQuarter.substring(5));
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
     }
 }

--
Gitblit v1.7.1