题目要求:
(1)闰年( LeapYear )是为了弥补因人为历法规定造成的年度天数(365)与地球头际公转周期(365天5小时48分46秒)的时间差而设立的。每4年多出来的一天加到2月份上(29天)。现行公历中每400年有97个闰年,因此每400年中要减少3个闰年。所以公历规定:四年一闰,百年不闰,四百年再国。1、3、5、7、8、10、12月为31天,4、6、911月为30天,闰年时2月29天,其他28天。
(2)判断 y 是否为闰年的逻辑表达式:( y %4==0&& y %100!=0) || ( y %400==0)即为闰年,反之不是。
(3)从键盘上输人年份(0~9999)和月份( I ~12),然后输出××××年××月有××天。
编程提示:使用 switch 语句实现,往意利用去失 break 子句出现的穿越现象
具体代码如下:
import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
int Y,M;
System.out.println("请输入年份和月份(中间用空格隔开):");
Scanner sc=new Scanner(System.in);//调用Scanner方法获取年份和月份
Y=sc.nextInt();
M=sc.nextInt();
LY(Y,M);//直接调用静态方法LY()
}
//静态方法
public static void LY(int Y,int M) {
if(M==2) {//如果是2月
if((Y%4==0&&Y%100!=0)||(Y%400==0))//判断是否为闰年
System.out.println(Y+"年"+M+"月有29天");
else
System.out.println(Y+"年"+M+"月有28天");
}
else {//不是2月的情况下
switch(M) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:System.out.println(Y+"年"+M+"月有31天");break;
case 4:
case 6:
case 9:
case 11:System.out.println(Y+"年"+M+"月有30天");break;
}
}
}
}