package com.zx.text1;
import java.util.Scanner;//獲取輸入窗口函數
import java.util.Calendar;
import java.util.Date;//獲取時間日期函數
import java.util.GregorianCalendar;
import java.text.*;
public class demo3 {
public static void main (String[] args) throws ParseException{
int maxDay = 0;
int firstDay = 0;
int currentDay = 0;
System.out.println("請輸入一個日期,格式為:2019-01-01");
Scanner sc = new Scanner(System.in);
//獲取鍵盤輸入的時間格式
String str = sc.nextLine();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(str);
//將字符串轉化為指定的日期格式
Calendar calendar = new GregorianCalendar();
//將日期轉為日歷
calendar.setTime(date);
maxDay = calendar.getActualMaximum(Calendar.DATE);//獲取最大的數
currentDay = calendar.get(Calendar.DATE);
//當前日期中前天
calendar.set(Calendar.DATE,1);
//設置為當前頁的第一天
firstDay = calendar.get(Calendar.DAY_OF_WEEK);
//當前日期中 當月第一天對應的星期數
System.out.println("--------------------------------------------------");
System.out.println("周日 \t 周一\t 周二 \t 周三 \t周四\t 周五\t 周六");
System.out.println("---------------------------------------------------");
for(int j = 1;j < firstDay;j++) {
//當前月之前空格輸出
System.out.print("\t");
}
//輸出當月每一天的號數
for(int i = 1;i <= maxDay;i++) {
//表示當天日期
if(i == currentDay) {
System.out.print("");
}
System.out.print(i+"\t");
if((i-(8-firstDay))%7 == 0) {//7天為一個循環 輸出所有的數
System.out.println("\n");
}
}
}
}