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