万年历,初级必学
import java.util.Scanner;
public class test17{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
int year = input.nextInt();
int year1 = 1900;
int day =0;//每月天数
int i =1;
int yearday = 0;//每年天数
int monthday = 0;//每月天数
int sumday=0;//天数总和
int firstweek=0;//每月第一天星期数
int month1=0;//平年月份
if(year%4==0&&year%100!=0||year%400==0){
System.out.println("请输入月份:");
int month = input.nextInt();
yearday=366;
for(int j = 1;j<=month;j++){
if(j==2){
day=29;
}else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12){
day=31;
}else{
day=30;
}
monthday+=day;
}
}else{
System.out.println("请输入月份:");
month1 = input.nextInt();
yearday=365;
for(int j = 1;j<=month1;j++){
if(j==2){
day=28;
}else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12){
day=31;
}else{
day=30;
}
monthday+=day;
}
}
int sum= 0;
int sum1=0;
for(i=year;i>1900;i--){
if(i%4==0&&i%100!=0||i%400==0){
sum+=1;//闰年数
}else{
sum1+=1;//平年数
}
}
sumday=sum*366+sum1*365+monthday-day;
int set = 0;
firstweek = (sumday+1)%7;
if(year==1900&&month1==1){
firstweek=1;
}
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for(int a=1;a<=firstweek;a++){
System.out.print("\t");
set++;
}
for(int a=1;a<=day;a++){
System.out.print(a+"\t");
set++;
if(set%7==0){
System.out.println();
}
}
System.out.println();
}
}