mitao
2024-07-12 3e456f3e812ead6a19e80cfbdbf86ae0263d50b9
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;
@@ -409,13 +410,40 @@
        return DateUtils.toDate(startDate);
    }
    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年四季度")));