Calendar實現視覺化日曆程式
阿新 • • 發佈:2018-11-11
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; } } } }
效果圖如下