该日历查询的范围为1900-2015年

import java.util.Scanner;

public class Calendar4 {

public static void main(String[] args){

Scanner input=new Scanner(System.in);

for(;;){

System.out.println("请输入年份");

int year=input.nextInt();

for(;year<1900||year>2050;){

System.out.println("该日历的查询范围在1900年-2050年,请重新输入");

year=input.nextInt();

}

System.out.println("请输入月份");

int month=input.nextInt();

for(;month>13||month<1;){

System.out.println("输入的月份不正确,请重新输入");

month=input.nextInt();

}

int sum=0;

for(int i=1900;i<year;i++){

if(i%4==0&&i%100!=0||i%400==0){

sum+=366;

}else{

sum+=365;

}

for(int j=1;j<month;j++){

if(j==2){

if(year%4==0&&year%100!=0||year%400==0){

sum+=29;

}else{

sum+=28;

}

}else{

if(j==4||j==6||j==9||j==11){

sum+=30;

}else{

sum+=31;

}

}

}

}

sum+=1;

int weekday=sum%7;

System.out.println("日\t一\t二\t三\t四\t五\t六");

for(int i=1;i<=weekday;i++){

System.out.print("\t");

}

if(month==4||month==6||month==9||month==11){

for(int j=1;j<=30;j++){

if(sum%7==6){

System.out.print(j+"\n");

}else{

System.out.print(j+"\t");

}

sum+=1;

}

}else if(month==1||month==3||month==5||month==7||

month==8||month==10||month==12){

for(int j=1;j<=31;j++){

if(sum%7==6){

System.out.print(j+"\n");

}else{

System.out.print(j+"\t");

}

sum+=1;

}

}else if(month==2){

if(year%4==0&&year%100!=0||year%400==0){

for(int j=1;j<=29;j++){

if(sum%7==6){

System.out.print(j+"\n");

}else{

System.out.print(j+"\t");

}

sum+=1;

}

}else{

for(int j=1;j<=28;j++){

if(sum%7==6){

System.out.print(j+"\n");

}else{

System.out.print(j+"\t");

}

sum+=1;

}

}

}

System.out.println("\n还继续吗?(yes/no)");

String question=input.next();

if(question.equals("yes")){

continue;

}else if(question.equals("no")){

break;

}else{

for(;;){

System.out.println("你的回答不正确,请重新输入");

question=input.next();

if(question.equals("yes")){

break;

}else if(question.equals("no")){

break;

}

}

}

if(question.equals("no"))break;

}

}

}