思路:将日历调整到指定年份的3月1日,利用add方法向前偏移1天,获取2月份天数,如果28天是平年,29天则是瑞年
代码:
public class CalcYear { private static Scanner sc; public static void main(String[] args) { justYear(getYear()); } public static void justYear(int year){ Calendar c = Calendar.getInstance(); //将日历设置到指定时间点的3月1日,注意月份从0开头,2即为3月份 c.set(year, 2, 1); //日期向前偏移一天,即到达了2月份 c.add(Calendar.DAY_OF_MONTH, -1); //获取2月份的天数 int days = c.get(Calendar.DAY_OF_MONTH); switch (days) { case 29: System.out.println(year + "年2月共有" + days + "天,为瑞年!"); break; default: System.out.println(year + "年2月共有" + days + "天,为平年!"); break; } } public static int getYear(){ sc = new Scanner(System.in); System.out.println("请输入您要验证的年数:"); int year = sc.nextInt(); return year; } } console: 请输入您要验证的年数: 1997 1997年2月共有28天,为平年!