import com.sun.org.apache.xpath.internal.SourceTree;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
/*
1.键盘录入 日期(字符串)
2.将字符串日期转为date日期
3.date和 Calendar 产生关联
4.记录当前日期是几号 加 *
5.将日期变为当月的1号
6.求出 当月 1号对应的是周几 算出空格的数量
7.获取当月的最大天数
8.进行日期的更改
9.周六换行
*/
public class CalendarTest2 {
public static void main(String[] args) throws ParseException {
//1.创建解析日期的格式
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//2.键盘录入数据
System.out.println("请输入您的日期(2020-2-2)");
Scanner in = new Scanner(System.in);
String strDate = in.next();
/// String strDate = "2020-7-6";
//3.将字符串数据==》date
Date date = df.parse(strDate);
//4.calendar与Date产生关联
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//5.记录日期
int day = calendar.get(Calendar.DATE);
//6.将当前日期变为1号
calendar.set(Calendar.DATE, 1);
//7.输出表头
System.out.println("日\t一\t二\t三\t四\t五\t六");
int num = calendar.get(Calendar.DAY_OF_WEEK);
//8.输出空格
for (int i = 1; i < num; i++) {
System.out.print("\t");
}
//9.输出数字
int maxDay = calendar.getActualMaximum(Calendar.DATE);
//System.out.println(maxDay);
for (int i = 1; i <= maxDay; i++) {
//输出每一个数字
if (i == day) {
System.out.print("*" + i + "\t");
} else {
System.out.print(i + "\t");
}
// System.out.println("===="+calendar.get(Calendar.DATE));
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
System.out.println();
}
//日期+1
calendar.add(Calendar.DATE, 1);
}
}
}