import java.util.Scanner;
public class PrintCalendarDemo1
{
public static void main(String[] args)
{
int year;//儲存輸入的年
int month;//儲存輸入的月
boolean isRn;//閏年儲存true,否則為false
int days=0;//儲存月份的天數
int totalDays=0;//儲存總的天數差
System.out.println("***************使用萬年曆***************");
Scanner input= new Scanner(System.in);
System.out.println("請輸入年");
year = input.nextInt();
System.out.println("請輸入月");
month = input.nextInt();
if((year%400==0) || (year%4==0&& year%100!=0)){
isRn = true;
}else{
isRn= false;
}
if(isRn){
System.out.println(year+"年" + "是閏年");
}else
{
System.out.println(year+"年" + "不是閏年");
}
//計算年的總天數
for(int i=1900;i<year;i++){
if(i%400==0||(i%4==0&&i%100!=0)){
totalDays+=366;
}else{
totalDays+=365;
}
}
//計算輸入月份之前的總天數
for(int i=1;i<=month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRn){
days=29;
}else{
days=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
System.out.println("輸入的月份有誤!");
}
//輸入月的天數儲存到days變量,但不累加
if(i!=month){
totalDays+=days;
}
}
//求出星期幾,其實就是前面\t的個數
int beforDays;
beforDays=1+totalDays%7;
if(beforDays==7){
beforDays=0;
}
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
for(int i=0;i<beforDays;i++){
System.out.print("\t");
}
for(int i=1;i<=days;i++){
System.out.print(i+"\t");
if((i+beforDays)%7==0){
System.out.println();
}
}
System.out.println();
System.out.println(year+"年"+month+"月"+"有"+days+"天");
}
}