月历卡片
//import java.util.Calendar;
import java.util.Scanner;
public class Main {
public static void main(String args[]) throws Exception {
Scanner input = new Scanner(System.in);
int y=input.nextInt();
int m=input.nextInt();
String[] ms ={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
System.out.println(" " + y+"年"+ms[m-1]);
System.out.println("日 一 二 三 四 五 六");
int days = getDaysOfMonth(y,m);
int week = getWeek(y,m);
for(int i =0;i<week;i++)
{
StdOut.print(" ");
}
int site=1;
for(int j=1;j<=7 - week;j++)
{
StdOut.printf("%2d ", j);
site=j;
}
System.out.println();
for(int i=site+1;i<=days;i++)
{
StdOut.printf("%2d ", i);
if((i-site) %7==0)System.out.println();
}
}
private static int getDaysOfMonth(int year,int month)
{
/*
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
int days_of_month = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
return days_of_month;
*/
int[] months={31,28,31,30,31,30,31,31,30,31,30,31};
if((year%4==0&&year%100!=0)||(year%400==0))
{
months[1]=29;
}
return months[month-1];
}
private static int getWeek(int year,int month)
{
int a = (14-month)/12;
int y=year-a;
int m=month+12*a -2;
int day = 1;
int week=(day+y+y/4-y/100+y/400+31*m/12)%7;
return week;
}
}