要求:輸入年和月份,先判斷是否為閏年,在判斷每個月份對應的天數
方案步驟: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 }
運行結果:
