計算兩日期間2月29日總數的Java程式
• java教程• 發佈:2018-10-03
事先宣告,本人僅僅是個計算機領域的新手,不久前開始學習Java。後來我接到了一份關於計算兩日期間2月29日總數的程式設計作業,倉促之中我便寫下了這個程式。由於之前可以說毫無程式設計經驗,Java也僅僅是隻學了一小部分。所以目前該程式尚未解決輸入問題。
我解決這個問題的思路是:
- 編寫一個方法(leapYear)用於判斷某一年份是否為閏年;
- 編寫另一個方法(dateExist)用於判斷某一時期是否真實存在,在這方法中會引用到上個方法;
- 最後編寫main方法,引用方法(dateExist)分別判斷起始日期和終止日期是否真實存在;
- 倘若均真實存在。假如起始和終止日期不在同一年,這對起始和終止年份之間的年份列舉,把閏年總數計算出來,在這過程中引用方法(leapYear);不真實存在則顯示提示。
- 最後判斷起始和終止年份是否為閏年及起始/終止月份是否小於/大於2月,並把符合條件的2月29日算出,在這過程中也須引用方法leapYear。
以下是我的程式碼:
1 public class LeapYearComputing 2 { 3 //判斷某一年份是否為閏年。 4 public static boolean leapYear(int y) { 5 boolean leapYear; 6 if (y % 4 == 0) { 7 if(y % 100 == 0) { 8 if(y % 400 == 0) { 9 leapYear = true; 10 } 11 else { 12 leapYear = false; 13 }; 14 } 15 else { 16 leapYear = true; 17 }; 18 } 19 else { 20 leapYear = false; 21 }; 22 return leapYear; 23 }; 24 25 //判斷某一日期是否存在,不考慮公元前的年份。 26 public static boolean dateExist(int year ,int month ,int date) { 27 boolean dateExist; 28 if (year > 0 ) { 29 if (month > 0 &;&; month < 13) { 30 if (date > 0 &;&; date < 32) { 31 switch(month) { 32 case 2: 33 case 4: 34 case 6: 35 case 9: 36 case 11: 37 if (date < 31) { 38 if (month == 2) { 39 if (leapYear(year)) { 40 if (date < 30) { 41 dateExist = true; 42 } 43 else { 44 dateExist = false; 45 }; 46 } 47 else if (date < 29) { 48 dateExist = true; 49 } 50 else { 51 dateExist = false; 52 }; 53 } 54 else if (date < 31) { 55 dateExist = true; 56 } 57 else { 58 dateExist = false; 59 }; 60 } 61 else { 62 dateExist = false; 63 }; 64 break; 65 default: 66 if (date < 32) { 67 dateExist = true; 68 } 69 else { 70 dateExist = false; 71 }; 72 }; 73 } 74 else { 75 dateExist = false; 76 }; 77 } 78 else { 79 dateExist = false; 80 }; 81 } 82 else { 83 dateExist = false; 84 }; 85 return dateExist; 86 }; 87 88 //計算兩個日期間2月29日數量。 89 public static void main(String[] args) { 90