/*
*主要考察了Calendar类中的一些方法的用法,和遍历时所用的一些常用手法!
*/
public class WanYearLi {
public static void main(String[] args) {
String []week = {" ","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
Calendar c = Calendar.getInstance();
System.out.println("请输入你要输入的年:");
int Syear = new Scanner(System.in).nextInt();
System.out.println("请输入你要输入的月:");
int Smonth = new Scanner(System.in).nextInt();
//因为month是0-11所有Smonth是后一月 你输的是3月 默认是4月
c.set(Syear,Smonth,1);//把你的年份和月份传进去,这是你输的后一月的第一天
c.add(Calendar.DATE,-1);//这是你输入的月份的最大天数
int maxmonth = c.get(Calendar.DATE);
System.out.println(c.get(Calendar.DATE));//输出你要的月份的最大天数
c.set(Syear,Smonth-1,1);//初始化
int dayWeek = c.get(Calendar.DAY_OF_WEEK);//得出一个月中第一天是星期几
System.out.println("-----------------");
System.out.println(dayWeek);//输出星期几 验证一下
//打印week数组 星期天 星期一 星期二 星期三 星期四 星期五 星期六
for(int i =1;i<week.length;i++) {
System.out.print(week[i]+"\t");
}
System.out.println();
//声明一个变量 打印万年历时前面的空格做准备
int z = 1;
//遍历一月中的天数
for(int j =1;j<=maxmonth;z++) {
if(z<dayWeek) {
System.out.print(" "+"\t");
}else {
System.out.print(j+"\t");
j++;
if(z%7==0) {
System.out.println();
}
}
}
}
}