| | |
| | | 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; |
| | |
| | | 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年四季度"))); |