奖项届定获取方式

问题:

我需要一个java方法,传入年份获取字符串描述值。如一个奖项是每两年举办一届,起始年份为2024年首届,26年为第二届,28年为第三届,以此类推。返回第几届问题。

核心处理方式:

届数 = (目标年份 - 起始年份) / 周期 + 1

例如:2026年 → (2026-2024)/2 + 1 = 2 → 第二届

处理工具类:

java 复制代码
/**
 * 计算奖项届数
 * 规则:每两年一届,2024年为首届,2026年第二届,以此类推
 * 
 * @param year 目标年份
 * @return 届数描述,如"第一届"、"第二届"等
 */
public static String getAwardSession(int year) {
    // 起始年份
    final int startYear = 2024;
    // 举办周期(每2年一届)
    final int cycle = 2;
    
    // 检查年份是否合法(必须是偶数年且不小于起始年份)
    if (year < startYear) {
        return "该年份尚未举办";
    }
    
    // 计算与起始年份的差值
    int diff = year - startYear;
    
    // 检查是否是举办年份(差值必须是周期的整数倍)
    if (diff % cycle != 0) {
        return "该年份不举办";
    }
    
    // 计算届数(差值除以周期 + 1,因为2024年是第一届)
    int session = diff / cycle + 1;
    
    // 转换为中文数字
    return "第" + numberToChinese(session) + "届";
}

/**
 * 将数字转换为中文数字(支持1-99)
 */
private static String numberToChinese(int num) {
    if (num <= 0 || num > 99) {
        return String.valueOf(num);
    }
    
    String[] chineseDigits = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
    String[] chineseUnits = {"", "十", "百"};
    
    if (num < 10) {
        return chineseDigits[num];
    }
    
    int tens = num / 10;
    int ones = num % 10;
    
    StringBuilder result = new StringBuilder();
    
    // 处理十位
    if (tens == 1) {
        // 10-19,"十"前面不加"一"
        result.append(chineseUnits[1]);
    } else {
        result.append(chineseDigits[tens]).append(chineseUnits[1]);
    }
    
    // 处理个位
    if (ones > 0) {
        result.append(chineseDigits[ones]);
    }
    
    return result.toString();
}

// 测试
public static void main(String[] args) {
    System.out.println(getAwardSession(2024)); // 第一届
    System.out.println(getAwardSession(2026)); // 第二届
    System.out.println(getAwardSession(2028)); // 第三届
    System.out.println(getAwardSession(2030)); // 第四届
    System.out.println(getAwardSession(2025)); // 该年份不举办
    System.out.println(getAwardSession(2022)); // 该年份尚未举办
    System.out.println(getAwardSession(2042)); // 第十届
}

方法特点:

1、自动校验年份是否合法(必须≥2024且符合举办周期)

2、支持中文数字转换(第一届、第十届、第二十届等)

3、对非举办年份给出明确提示

相关推荐
小红的布丁2 小时前
Reactor 模型详解:单 Reactor、主从 Reactor 与 Netty 思想
android·java·开发语言
weixin_704266052 小时前
redis 的集群
java·数据库·redis
被摘下的星星2 小时前
Java的类加载
java·开发语言
真上帝的左手2 小时前
8. 测试-性能测试-JMeter实战
java·压力测试
cheems95272 小时前
[SpringMVC] SpringWebMVC常见注解介绍
java·springmvc·注解
me8322 小时前
【Java】Spring MVC接口执行流程详解:从前端请求到参数封装全解析(前端到底是怎么和后端交互的?)
java·spring·mvc
niucloud-admin2 小时前
插件开发——upgrade 插件版本升级
java
vortex52 小时前
Gradle 从入门到实战
java·gradle
代码丰2 小时前
Zero Code Studio:LangChain4j 工具调用 + LangGraph4j 工作流双模式的 AI 网站生成系统
java·人工智能