要求:输入年和月份,先判断是否为闰年,在判断每个月份对应的天数
方案步骤:1.输入年和月
2.判断年是如否是闰年
判断的方法:4年一闰年,100年不闰,400年又是闰年
代码:(year%400 == 0 )||(year%4==0 && year%100 != 0)
3.计算月所对应的天数
分别用if和switch来解决
完整代码:
1 import java.util.Scanner; 2 3 public class Test9 { 4 5 /** 6 * 编写一个万年历,输入年和月,判断是不是闰年,并打印出响应的天数 7 */ 8 public static void main(String[] args) { 9 int year; //保存年份 10 int month; //保存月份 11 int days = 0; //保存天数 12 boolean isRn; //判断是否为闰年,true为闰年,false为非闰年 13 System.out.println("**********欢迎使用万年历***********"); 14 Scanner input = new Scanner(System.in); 15 16 //输入年份和月份 17 System.out.println("请输入年份:"); 18 year = input.nextInt(); 19 System.out.println("请输入月份"); 20 month = input.nextInt(); 21 22 //判断年份是否为闰年 23 if((year%400 == 0 )||(year%4==0 && year%100 != 0)){ 24 isRn = true; 25 }else{ 26 isRn = false; 27 } 28 29 //判断月份的天数 30 if(month==1 || month==3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){ 31 days = 31; 32 }else if(month == 2 ){ 33 if(isRn){ 34 days = 29; 35 }else{ 36 days = 28; 37 } 38 }else if(month == 4 || month == 6 || month == 9 || month == 11 ){ 39 days = 30; 40 }else { 41 System.out.println("请输入正确的月份"); 42 } 43 44 //用switch进行月份的判断 45 /*switch(month){ 46 case 1: 47 case 3: 48 case 5: 49 case 7: 50 case 8: 51 case 10: 52 case 12: days= 31; 53 break; 54 case 2: if(isRn){ 55 days = 29; 56 }else{ 57 days = 28; 58 } 59 break; 60 case 4: 61 case 6: 62 case 9: 63 case 11: 64 days = 30; 65 break; 66 default: 67 System.out.println("请输入正确的月份:"); 68 69 }*/ 70 71 System.out.println(year +"年"+month+"月对应的天数为:"+days); 72 } 73 }
运行结果: