如何在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
相关产品推荐
相关产品推荐

