版权声明:版权所有,如需引用,请注明出处! https://blog.csdn.net/DHRMM999/article/details/82386224
代码
//判断闰年平年
public static Boolean isYear(int x){
if(x%4==0&&x%100!=0){
return true;
}else{
return false;
}
}
//判断月数
public static int getMonth(int y,int m){
switch(m){
case 2:
if(isYear(y))return 29;
else return 28;
case 4:
case 6:
case 9:
case 11:return 30;
default:return 31;
}
}
//从1900到现在的天数,返回是星期几
public static int getDay(int a,int b){
int startday = 0,weekday;
for(int i=1900;i<a;i++){
if(isYear(i)==true){
startday += 366;
}else{
startday += 365;
}
}
for(int j=1;j<b;j++){
startday += getMonth(a,j);
}
weekday = (startday+1)%7+1;
if(weekday%7!=0){
for(int k=0;k<weekday;k++){
System.out.print(" ");
}
}
for(int i=1;i<=getMonth(a, b);i++){
System.out.printf("%6d",i);
if((weekday+i-1)%7==6){
System.out.println();
}
}
return weekday;
}
//主函数
public static void main(String[] args) {
System.out.println("请输入年份");
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
System.out.println("请输入月份");
int month = sc.nextInt();
//初始化天数1900
System.out.println("----------------------------------------------");
System.out.println(" 星期天 星期一 星期二 星期三 星期四 星期五 星期六 ");
getDay(year, month);
}