import java.util.Calendar;
import java.util.Scanner;
public class T12打印日历 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份和月份");
int year =sc.nextInt();
int month =sc.nextInt();
printfCal(year,month);
}
public static void printfCal(int year,int month) {
System.out.println(year + "年" + month + "月");
//1创建一个日历对象
Calendar cal = Calendar.getInstance();
//2设置日历的日期 2018年7月1日
cal.set(year, month-1, 1);
//3获取 xxxx年xx月1日是星期几
int week = cal.get(Calendar.DAY_OF_WEEK);// 数字6其实代表周五
System.out.println(year + "年" + month + "月的第一个天数字" + week);
System.out.println(year + "年" + month + "月的第一个天是星期" + (week-1));
//4获取这个月总共的天数
int maxDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月总共" + maxDays);
// 7月的时候 第一天是星期天 week=0 空格0个
// 8月的时候 第一天是星期三 week=4空格3个
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
//5考虑需要打印几个空格
for (int i = 1 ;i < week;i++) {
System.out.print("\t");
}
//6打印这个月的每一天
for (int i = 1; i <= maxDays; i++) { //此时的i就是代表日期 1-31
//7输出相应的日期
System.out.print(i + "\t");
//8.2每循环一次,这个月就过了一天,对应的星期几也在变化,所以需要重新设置当天的日期
cal.set(Calendar.DATE, i);
//8.1获取相应的i对应的week也就是获取当天是星期几
int week1 = cal.get(Calendar.DAY_OF_WEEK);
//8换行 当week数字==7 也就是 星期六的时候进行换行
if (week1==7) {
System.out.println();
}
}
}
}