【问题描述】输出打印指定年、月的月历。
【输入形式】年 月
【输出形式】月历形式,具体形式参考下面的样例输出
【样例输入】2022 4
【样例输出】
2022 April
Mon Tue Wed Thu Fri Sat Sun
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
【问题描述】输出打印指定年、月的月历。
【输入形式】年 月
【输出形式】月历形式,具体形式参考下面的样例输出
【样例输入】2022 4
【样例输出】
2022 April
Mon Tue Wed Thu Fri Sat Sun
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
public class lx_1 {
static final String week[]= {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int i;
int year;//对指定年份进行设定
int month;//对指定月份进行设定
System.out.println("输入要查询的年份和月份");
year = input.nextInt();
month = input.nextInt();
System.out.println(year + "年"+ month + "月的日历如下:\n");
System.out.println("=========================================");
GregorianCalendar cal=new GregorianCalendar(year,month-1,1);//对年份,月份,以及第一天来创建对象
int totalDays =cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取该月份的天数
int startDay =cal.get(Calendar.DAY_OF_WEEK)-1;//获取该月的第一天是星期几
for(i=0;i<week.length;i++)
System.out.print(week[i]+"\t");//输出一周7天的星期
System.out.println();
for(i=0;i<startDay;i++)
System.out.print("\t");//输出第一天前的空格
for(int day =1;day<=totalDays;day++) {
if(day<=8) { //用于输出控制
System.out.print(day + " \t");//依次输出每一天
}else {
System.out.print(day+"\t");
}
i++;
if(i==7) { //每个星期输完换行
System.out.println();
i=0;
}
}
}
}