编写一个应用程序,输出某年某月的日历。
package cn.edu.nefu.zhihu;
import java.util.Calendar;
import java.util.Scanner;
public class CalenClass {
static int days(int year,int month){
int days=0;
switch (month){
case 1: days=31;break;
case 2:
if((year%4==0&&year%100!=0)||year%400==0)days=29;
else days=28;break;
case 3: days=31;break;
case 4: days=30;break;
case 5: days=31;break;
case 6: days=30;break;
case 7: days=31;break;
case 8: days=31;break;
case 9: days=30;break;
case 10: days=31;break;
case 11: days=30;break;
case 12: days=31;break;
default: days=0;break;
}
return days;
}
public static void main(String[] args) {
Calendar riLi=Calendar.getInstance();
Scanner reader=new Scanner(System.in);
int year,month;
year=reader.nextInt();
month=reader.nextInt();
riLi.set(year, month-1, 1);
int w=riLi.get(Calendar.DAY_OF_WEEK)-1;
int s[]=new int[42];
int d=days(year,month);
int d1=0;
if(month==1){
d1=days(year-1,12);
}
else d1=days(year,month-1);
if(w==0){
for(int i=6;i>=0;i--,d1--){
s[i]=d1;
//System.out.println(s[i]);
}
w=7;
}
else{
for(int i=w-1;i>=0;i--,d1--){
s[i]=d1;
//System.out.println(s[i]);
}
}
int k=1;
for(int i=w;i<w+d;i++,k++){
s[i]=k;
}
k=1;
for(int i=w+d;i<s.length;i++,k++){
s[i]=k;
}
System.out.println(" "+year+"年"+month+"月");
System.out.println("日 一 二 三 四 五 六");
int idx=0;
for(int i=0;i<6;i++){
for(int j=0;j<7;j++){
System.out.printf("%-2d ",s[idx++]);
}
System.out.println();
}
}
}