在Java中,我們可以通過輸入年份和月份,來實(shí)現(xiàn)輸出對(duì)應(yīng)月份的日歷。
/** * 輸入年份和月份,輸出對(duì)應(yīng)月份的日歷 */ public static void printCalendar(int year, int month) { int days = 0; // 該月份的天數(shù) int firstDayOfWeek = 0; // 該月份的第一天是周幾 int count = 0; // 輸出計(jì)數(shù)器,用于換行 // 計(jì)算該月份的天數(shù) if (month == 2) { // 二月份特判 if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { days = 29; } else { days = 28; } } else if (month == 4 || month == 6 || month == 9 || month == 11) { days = 30; } else { days = 31; } // 計(jì)算該月份的第一天是周幾 Calendar cal = Calendar.getInstance(); cal.set(year, month - 1, 1); firstDayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1; // 輸出日歷表頭 System.out.println(year + "年" + month + "月"); System.out.println("一\t二\t三\t四\t五\t六\t日"); // 輸出日歷 for (int i = 0; i< firstDayOfWeek; i++) { System.out.print("\t"); count++; } for (int i = 1; i<= days; i++) { System.out.print(i + "\t"); count++; if (count % 7 == 0) { // 每輸出七天換一行 System.out.println(); count = 0; } } if (count != 0) { // 最后一行沒有輸出滿時(shí),要補(bǔ)齊到七天 for (int i = count; i< 7; i++) { System.out.print("\t"); } System.out.println(); } }
以上代碼的實(shí)現(xiàn)原理是,首先通過年份和月份計(jì)算出該月份的天數(shù)和第一天是周幾,然后輸出日歷表頭,并根據(jù)第一天是周幾來輸出日歷。為了方便閱讀,我們每輸出七天就換一行。如果最后一行沒有輸出滿七天,我們則需要補(bǔ)齊到七天。
總體來說,通過Java實(shí)現(xiàn)輸出年份和月份對(duì)應(yīng)月份的日歷是一件比較簡單的事情,只需要掌握一些時(shí)間計(jì)算的知識(shí)點(diǎn)即可。