1 /** 2 * 編寫程序: 3 * 從鍵盤上輸入"year"“month”和“day”,要求通過程序輸出 4 * 輸入的日期為第幾年的第幾天 5 * 注:判斷一年是否是閏年的標准: 6 * 可以被4整除,但不可被100整除 7 * 或 8 * 可以被400整除 9 * 10 */ 11 12 13 Scanner scan = new Scanner(System.in); 14 System.out.println("請輸入年份year:"); 15 int year = scan.nextInt(); 16 System.out.println("請輸入"+year+"年的month:"); 17 int month = scan.nextInt(); 18 System.out.println("請輸入"+year+"年月份的day:"); 19 int day = scan.nextInt(); 20 21 //定義變量保存總天數 if-else 方法 冗余 22 int sumDays = 0; 23 /* 24 25 if(month == 1) 26 { 27 sumDays = day; 28 } 29 else if(month == 2) 30 { 31 sumDays = 31+ day; 32 } 33 //...... 34 else 35 { 36 //month == 12 37 sumDays = 31+31+....+day; 38 } 39 */ 40 41 //方式二------------------------------------ 42 /* 43 switch(month) 44 { 45 case 1: 46 sumDays = day; 47 break; 48 case 2: 49 sumDays = 31 + day; 50 break; 51 case 3: 52 sumDays = 31+31+day; 53 break; 54 .............. 55 } 56 */ 57 58 //方式三 break在switch-case結構中是可選的。 59 switch(month) 60 { 61 case 12: 62 sumDays += 30; 63 case 11: 64 sumDays += 31; 65 case 10: 66 sumDays += 30; 67 case 9: 68 sumDays += 31; 69 case 8: 70 sumDays += 31; 71 case 7: 72 sumDays += 30; 73 case 6: 74 sumDays += 31; 75 case 5: 76 sumDays += 30; 77 case 4: 78 sumDays += 31; 79 case 3: 80 // sumDays += 28; 81 // 判斷year是否是閏年 82 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) 83 { 84 sumDays += 29; 85 } 86 else 87 { 88 sumDays += 28; 89 } 90 91 case 2: 92 sumDays += 31; 93 case 1: 94 sumDays += day; 95 96 } 97 System.out.println("這是"+year+"年"+ month +"月" + day +"日是當年的第" + sumDays + "天"); 98