import java.util.Scanner;
class WNL{
public static void main(String[] args) {
// 计算 输入的日期到 1900年 1月1号 过的的总天数;
// 累加求和;
int[] arr= sc();
int sum = getSum(arr[0],arr[1]);
print((sum+1)%7,arr[1],arr[0]);
}
public static int[] sc(){
Scanner in = new Scanner(System.in);
System.out.println("输入年份");
int year = in.nextInt();
System.out.println("输入月份");
int month = in.nextInt();
return new int[]{year,month};
}
public static void print(int space,int month,int year){
int day = 0;
switch(month){
case 2:
if((year%4==0&&year%100!=0)||(year %400 == 0)){
day = 29;
}else{
day = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
default:
day =31;
}
//打印日历 2016 7 ;
System.out.println("日\t一\t二\t三\t四\t五\t六");// 打印表头
//打印 天数;
for(int i = 1; i<=day+space; i++){
if(i<=space){
System.out.print("\t");
}else{
if(i%7 == 0){
System.out.println(i-space+"\t");
}else{
System.out.print(i-space+"\t");
}
}
}
}
// 累加求和的方法;
public static int getSum(int year, int month){
int sum = 0;
// 求出 1900 到 year 过去的总天数;
for(int i = 1900 ; i < year; i++ ){
if((i%4==0&&i%100!=0)||(i %400 == 0)){
// 闰年 ;
sum += 366;
}else{
// 平年
sum += 365;
}
}
//求出 过去的月份天数;
switch(month-1){
case 12 :
sum += 31;
case 11:
sum += 30;
case 10 :
sum += 31;
case 9:
sum += 30;
case 8:
sum += 31;
case 7:
sum += 31;
case 6:
sum += 30;
case 5:
sum += 31;
case 4 :
sum += 30;
case 3:
sum += 31;
case 2 :
if((year%4==0&&year%100!=0)||(year %400 == 0)){
sum += 29;
}else{
sum += 28;
}
case 1:
sum += 31;
}
return sum;
}
}
|
|