1. 程式人生 > >編寫Java程式,製作萬年曆。

編寫Java程式,製作萬年曆。

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