1. 程式人生 > >Calendar實現視覺化日曆程式

Calendar實現視覺化日曆程式

package com.data;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 通過使用者在控制檯輸入獲取當月日曆 並著重顯示當月第幾天 製作視覺化日曆
 */
public class ViewCalendar {
    public static void main(String[] args) {
        System.out.println("請輸入時間,格式年-月-日");
        Scanner scanner = new Scanner(System.in);
        while (true) {
            try {
                //建立使用者輸入的控制檯
                String next = scanner.next();
                //格式化使用者時間
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                //將使用者輸入的時間轉化為Date型別
                Date parse = format.parse(next);
                //建立日曆類物件
                Calendar calendar = new GregorianCalendar();
                //把當前時間傳給日曆類Canlendar
                calendar.setTime(parse);
                //設定變數這個月的第幾天
                int i2 = calendar.get(calendar.DATE);
                //把當前時間變為幾月1號 便於查詢星期幾是一號
                calendar.set(Calendar.DATE, 1);
                //獲取星期一屬於周幾    --是按照星期天是1 星期一是2 ... 來排序的
                int week = calendar.get(Calendar.DAY_OF_WEEK);
                //獲取當月的最後一天
                int actualMaximum = calendar.getActualMaximum(calendar.DATE);

                System.out.println("日\t一\t二\t三\t四\t五\t六");
                for (int i = 1; i <week ; i++) {
                    System.out.print("\t");
                }
                for (int i = 1; i <= actualMaximum; i++) {
                    if (i2==i){
                        System.out.print("*");
                    }

                    System.out.print(i+"\t");
                    //獲取當前的星期幾
                    int i1 = calendar.get(calendar.DAY_OF_WEEK);
                    //每當為一週就換行
                    if (i1==Calendar.SATURDAY) {
                        System.out.println("");
                    }
                    //每次迴圈日+1
                    calendar.add(Calendar.DATE,1);
                }

            } catch (ParseException e) {
                System.out.println("輸入錯誤,請按照年-月-日的格式");
                continue;
            }
        }

    }
}

 

 

效果圖如下