You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中实现查询并显示两个用户输入年份之间的所有闰年

Java实现年份区间闰年查询功能

实现逻辑

  • 用Scanner类获取终端用户输入的两个年份
  • 对输入的两个年份做大小校准,统一区间的起始和结束值,避免用户输入顺序颠倒
  • 遍历区间内的所有年份,逐个判断是否为闰年
  • 闰年判断可以用JDK自带的GregorianCalendar.isLeapYear()方法,也可以手动实现规则:
    • 能被400整除的年份是闰年
    • 能被4整除但不能被100整除的年份是闰年
      其余年份均为平年
  • 遍历过程中输出所有符合条件的闰年

完整运行代码

import java.util.GregorianCalendar;
import java.util.Scanner;

public class LeapYears {
    public static void main(String[] args) {
        // 初始化输入工具类
        Scanner input = new Scanner(System.in);
        System.out.print("请输入第一个合法年份:");
        int yearOne = input.nextInt();
        System.out.print("请输入第二个合法年份:");
        int yearTwo = input.nextInt();
        input.close();

        // 校准区间范围
        int startYear = Math.min(yearOne, yearTwo);
        int endYear = Math.max(yearOne, yearTwo);

        GregorianCalendar calendar = new GregorianCalendar();
        System.out.printf("%d 到 %d 之间的闰年列表如下:\n", startYear, endYear);
        for (int year = startYear; year <= endYear; year++) {
            if (calendar.isLeapYear(year)) {
                System.out.println(year);
            }
        }
    }
}

如果不想依赖GregorianCalendar类,也可以把闰年判断的逻辑替换为手动实现的规则,修改判断条件即可:

// 替换if (calendar.isLeapYear(year)) 为以下代码
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))

内容的提问来源于stack exchange,提问作者Questioner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 22:33:03