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");
}
}
}
}