publicstaticvoidmain(String[] args){//a、用户输入年,打印该年的日历(使用Calendar实现)
Calendar c = Calendar.getInstance();
Scanner sc =newScanner(System.in);
System.out.println("请输入年");
int y = sc.nextInt();//将Calendar对象设置为输入年份的1月1日
c.set(y,0,1);//获取年份
int year = c.get(Calendar.YEAR);//定义m为1月
int m =0;//循环条件就是年份与输入年份不一致while(year == y){//输出月份标题
System.out.println(m+1+"月份");//输出星期标题
System.out.println("星期7\t星期1\t星期2\t星期3\t星期4\t星期5\t星期6");//获取1号是星期几
int weekDay = c.get(Calendar.DAY_OF_WEEK);//循环打印1号前面的空格for(int i =0; i < weekDay-1; i++){
System.out.print("\t");}//循环打印这个月的日历/**
* 思路,每次循环在天数上加1,循环的结束条件是月份与输入的月份不相等
*///获取月份
int month = c.get(Calendar.MONTH);while(m == month){//获取天
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.print(day+"\t");//如果到了星期6就换行
weekDay = c.get(Calendar.DAY_OF_WEEK);if(weekDay ==7){
System.out.println();}//每次循环天数加1
c.add(Calendar.DAY_OF_MONTH,1);//每次循环重新获取当前月份
month = c.get(Calendar.MONTH);}//每次循环重新获取当前年份
year = c.get(Calendar.YEAR);//每轮循环月份加1
m++;
System.out.println();
System.out.println();}}