已知2007年1月1日为星期一。
设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。
为完成此函数,设计必要的辅助函数可能也是必要的。其中输入为年分和月份。
样例输入:
2007 1
样例输出:
Calendar 2007-01
---------------------
Su Mo Tu We Th Fr Sa
---------------------
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 31
---------------------
样例输入:
2010 9
样例输出:
Calendar 2010-09
---------------------
Su Mo Tu We Th Fr Sa
---------------------
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
---------------------
设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。
为完成此函数,设计必要的辅助函数可能也是必要的。其中输入为年分和月份。
样例输入:
2007 1
样例输出:
Calendar 2007-01
---------------------
Su Mo Tu We Th Fr Sa
---------------------
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 31
---------------------
样例输入:
2010 9
样例输出:
Calendar 2010-09
---------------------
Su Mo Tu We Th Fr Sa
---------------------
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
---------------------
注意:短线“-”个数要与题目中一致,否则系统会判为错误。
import java.util.Calendar;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int m = input.nextInt();
Calendar cal = Calendar.getInstance();
cal.set(n,m-1,2);
int dayNum = cal.get(Calendar.DAY_OF_WEEK)-1;
//System.out.println(dayNum);
System.out.println("Calendar "+n+"-"+(m<10?"0"+m:m+""));
System.out.println("---------------------");
System.out.println("Su Mo Tu We Th Fr Sa");
System.out.println("---------------------");
for (int i=1; i<=(7-dayNum+1); i++){
System.out.print(i+" ");
}
System.out.println();
int index = 0;
for (int i=(7-dayNum+1)+1; i<=cal.getActualMaximum(Calendar.DAY_OF_MONTH); i++){
if (++index % 7 != 0){
System.out.print(i+" ");
}else{
System.out.print(i);
System.out.println();
}
}
if ((cal.getActualMaximum(Calendar.DAY_OF_MONTH)-8+dayNum)%7!=0)
System.out.println();
System.out.println("---------------------");
}
}