編寫Java程式,製作萬年曆。
阿新 • • 發佈:2018-12-25
package com.nfsbbs.wang; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; public class VisualCalendar { public static void main(String[] args) throws ParseException{//異常丟擲 System.out.println("請輸入日期(按照格式:201705):"); //輸入日期並格式化為yyyyMM Scanner sc = new Scanner(System.in); String df = sc.nextLine(); DateFormat format = new SimpleDateFormat("yyyyMM"); Date da = format.parse(df); System.out.println("日\t一\t二\t三\t四\t五\t六\t"); //把格式化後的日期輸入日曆 Calendar ca = new GregorianCalendar(); ca.setTime(da); ca.set(Calendar.DATE,1); //確定第一天 for(int i = 1; i < ca.get(Calendar.DAY_OF_WEEK); i++){ //在日曆上顯示月初是星期幾 System.out.print("\t"); } //主迴圈 int md = ca.getActualMaximum(Calendar.DATE); //獲取本月最大天數 for(int i = 1; i <= md; i++){ System.out.print(i + "\t"); int w = ca.get(Calendar.DAY_OF_WEEK); //獲取當前是周幾,每到週六換行 if(w == Calendar.SATURDAY){ System.out.println(); } ca.add(Calendar.DATE,1); //日期+1,重新迴圈 } } }
輸出如下:
請輸入日期(按照格式:201707):
201702
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28