奖项届定获取方式

问题:

我需要一个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、对非举办年份给出明确提示

相关推荐
Xzh04231 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
艾利克斯冰2 小时前
Java 设计模式-行为型模式(更新中)
java·开发语言·设计模式
倒霉蛋小马2 小时前
Java新特性:record关键字
java·开发语言
折哥的程序人生 · 物流技术专研2 小时前
《Java 100 天进阶之路》第95篇:消息队列基础(RocketMQ/Kafka)(2026版)
java·面试·kafka·rocketmq·java-rocketmq·求职招聘
budingxiaomoli2 小时前
Spring日志
java·开发语言
IT空门:门主2 小时前
Spring 注入三剑客:@Resource、@Autowired、@RequiredArgsConstructor 到底该用哪个?
java·后端·spring
Sam_Deep_Thinking3 小时前
Spring Boot 的启动原理是什么?
java·spring boot·后端
南部余额3 小时前
Spring WebClient 从入门到精通
java·后端·spring
CodeStats3 小时前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
摇滚侠3 小时前
Spring 零基础入门到进阶 基于注解管理 Bean 38-43
xml·java·后端·spring·intellij-idea