import java.util.Scanner;
class Calendar1
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
Scanner sc=new Scanner(System.in);
System.out.print("请输入年份:");
int year=sc.nextInt();
System.out.println();
System.out.print("请输入月份:");
int month=sc.nextInt();
System.out.println();
int sum=0;//输入的月份以前一共多少天
int k=0;//打印前应空的空格数
int day=days(month,year);
String [] s=new String[]{"日","一","二","三","四","五","六",};
//首行
System.out.println("\t\t"+year+"年"+month+"月");
System.out.println();
//第一行星期
for (int i=0;i<s.length ;i++ )
{
System.out.print(s[i]+"\t");
}
System.out.println();
System.out.println();
/*
int x=leapYearJudge(year);
if (x==1)
{
System.out.println("闰年");
}else
{
System.out.println("平年");
}
int y=days(month,year);
System.out.println(month+"天数为:"+y);
*/
//输入的年份以前共多少天
for (int i=0;i<year-1900;i++ )
{
int j=i+1900;
//接收判断是否为润年的返回值
int x=leapYearJudge(j);
if(x==1)
{
sum=sum+366;
//System.out.println(i+"润年:"+sum);
}
else
{
sum=sum+365;
}
}
//System.out.println("年共几天:"+sum);
for (int i=1;i<month;i++)
{
int x=days(i,year);
sum=sum+x;
}
//System.out.println("月共几天:"+sum);
//System.out.println("距离共几天:"+sum);
k=(sum+1)%7;
/*System.out.println("k="+k);
for (int i=1;i<=k;i++)
{
//System.out.print("0"+"\t");
}*/
for (int i=1;i<=day+k;i++)
{
if(i<=k)
{
System.out.print("\t");
}
else if((i-k)<10)
{
System.out.print(" "+(i-k)+"\t");
}
else
{
System.out.print(i-k+"\t");
}
if(i%7==0)
{
System.out.println();
}
}
}
//计算月份的天数
public static int days(int month,int year)
{
//接收判断是否为润年的返回值
int judge=0;
switch(month)
{
case 2: judge=leapYearJudge(year);
if (judge==1)
{
return 29;
}
else
{
return 28;
}
case 4:
case 6:
case 9:
case 11: return 30;
default: return 31;
}
}
//判断年份是否为润年 1为闰年 0为平年
public static int leapYearJudge(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return 1;
}
return 0;
}
}
class Calendar1
{
public static void main(String[] args)
{
//System.out.println("Hello World!");
Scanner sc=new Scanner(System.in);
System.out.print("请输入年份:");
int year=sc.nextInt();
System.out.println();
System.out.print("请输入月份:");
int month=sc.nextInt();
System.out.println();
int sum=0;//输入的月份以前一共多少天
int k=0;//打印前应空的空格数
int day=days(month,year);
String [] s=new String[]{"日","一","二","三","四","五","六",};
//首行
System.out.println("\t\t"+year+"年"+month+"月");
System.out.println();
//第一行星期
for (int i=0;i<s.length ;i++ )
{
System.out.print(s[i]+"\t");
}
System.out.println();
System.out.println();
/*
int x=leapYearJudge(year);
if (x==1)
{
System.out.println("闰年");
}else
{
System.out.println("平年");
}
int y=days(month,year);
System.out.println(month+"天数为:"+y);
*/
//输入的年份以前共多少天
for (int i=0;i<year-1900;i++ )
{
int j=i+1900;
//接收判断是否为润年的返回值
int x=leapYearJudge(j);
if(x==1)
{
sum=sum+366;
//System.out.println(i+"润年:"+sum);
}
else
{
sum=sum+365;
}
}
//System.out.println("年共几天:"+sum);
for (int i=1;i<month;i++)
{
int x=days(i,year);
sum=sum+x;
}
//System.out.println("月共几天:"+sum);
//System.out.println("距离共几天:"+sum);
k=(sum+1)%7;
/*System.out.println("k="+k);
for (int i=1;i<=k;i++)
{
//System.out.print("0"+"\t");
}*/
for (int i=1;i<=day+k;i++)
{
if(i<=k)
{
System.out.print("\t");
}
else if((i-k)<10)
{
System.out.print(" "+(i-k)+"\t");
}
else
{
System.out.print(i-k+"\t");
}
if(i%7==0)
{
System.out.println();
}
}
}
//计算月份的天数
public static int days(int month,int year)
{
//接收判断是否为润年的返回值
int judge=0;
switch(month)
{
case 2: judge=leapYearJudge(year);
if (judge==1)
{
return 29;
}
else
{
return 28;
}
case 4:
case 6:
case 9:
case 11: return 30;
default: return 31;
}
}
//判断年份是否为润年 1为闰年 0为平年
public static int leapYearJudge(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return 1;
}
return 0;
}
}