import java.util.Calendar;
import java.util.Scanner;
public class T5 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
/*
* 7 使用Calendar或Date类,打印出输入年月对应的日历表,
* 提示:
1.先使用Date或Calendar获得这个月的1号是星期几,用来确定1号前需要几个**
2.然后确定这个月的天数,确定需要打印多少个数字
a)可以使用条件判断获得天数
b)可以借用Calendar类的add方法,时间定为到X年X月的1号,先添加一个月,
再减去一天,则时间就定为到X年X月的最后一天,获得这一天是几号则可得这个月的天数。
3.每输出7个内容(包含数字与空格)则需要换行。
4.输入年,月实现输出该月的日历
*/
Scanner str=new Scanner(System.in);
Calendar c = Calendar.getInstance();
c.set(2000, 1, 1);//默认的年月日
System.out.println("请输入想查询的年份");
int year=str.nextInt();
c.set(Calendar.YEAR, year);
System.out.println("请输入想查询的月份");
int month=str.nextInt();
c.set(Calendar.MONTH,month-1);
System.out.print("星期一\t");
System.out.print("星期二\t");
System.out.print("星期三\t");
System.out.print("星期四\t");
System.out.print("星期五\t");
System.out.print("星期六\t");
System.out.print("星期日\t");
System.out.println();
int i1=c.get(Calendar.DAY_OF_WEEK);//得到这个月的第一天在星期几
int count=0;
for(int i=0;i<i1-2;i++) {
System.out.print("*\t");
count++;
}
c.add(Calendar.MONTH, +1);//加一个月,得到下个月的第一天
c.add(Calendar.DATE, -1);//减一天,得到这个月有多少天
for(int i=0;i<c.get(Calendar.DAY_OF_MONTH);i++) {
System.out.print(i+1+"\t");
count++;
if(count%7==0) {
System.out.println();
}
}
}
}
得到的结果如下图