题目分析
键盘输入年份,判断是否是闰年。
闰年分为普通闰年和世纪闰年。
1、 普通闰年:公历年份是4的倍数,且不是100的倍数,为普通闰年。(如2004、 2020年就是闰年) 。
2、 世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1 900年不是世纪闰年, 2000年是世纪闰年)。
1、日历中闰年的二月有29天,根据输入的年份在日历中判断其2月28日加一天后是否是29日,如果是29日则证明是闰年。或者判断2月28日增加一天后是否还在二月,如果还在二月证明是闰年,否则不是闰年。
方法一
import java.util.Scanner;
public class RunNian {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要计算的年份:");
int year = scanner.nextInt(); //year为输入的年份
/*
if(a>1&&b>1) 这是说既要满足a>1也要满足b>1
if(a>1||b>1) 这是说或者满足a>1或者要满足b>1
*/
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year+"年是闰年");
} else {
System.out.println(year+"年不是闰年");
}
}
}
运行效果
方法二
import java.util.Calendar;
import java.util.Scanner;
public class RunNian {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个年份年:");
int year =scanner.nextInt(); //year代表输入的年份
Calendar calendar = Calendar.getInstance(); //日历
calendar.set(year,1,28); //月份是从0开始的,所以2月应该输入1
calendar.add(Calendar.DAY_OF_MONTH,1); //28号加一 从而判断是29日还是下月的1日
int day = calendar.get(Calendar.DAY_OF_MONTH);
if (day==29){ //如果有29日证明是闰年
System.out.println(calendar.get(Calendar.YEAR)+"年是闰年");
}else {
System.out.println(calendar.get(Calendar.YEAR)+"年不是闰年");
}
}
}