输入一个年份和月份就能看到这个月的日历
import java.util.Scanner;
class Calender02 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int year=0;
int month=0;
do{
System.out.println("请输入一个年份");
year=input.nextInt();
if(year<1900||year>2050) System.out.println("您输入的格式有误,请重新输入,");else break;
}while(true);
do{
System.out.println("请输入一个月份");
month=input.nextInt();
if(month<1||month>12) System.out.println("您输入的格式有误,请重新输入,");else break;
}while(true);
int totals=totalDays(year,month);
System.out.println("从1900年1月初开始到本月末总共有:"+totals+"天");
int monthDays=monthDays(year,month);
System.out.println("本月总共有:"+monthDays+"天");
print(totals,monthDays);
}
public static int totalDays(int year,int month){
int days=0;
int nums=0;
for(int i=1900;i<=year;i++){
if(i==year){
for(int j=1;j<=month;j++){
switch(j){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days= 31;
break;
case 4:
case 6:
case 9:
case 11:
days= 30;
break;
case 2:
if(i%4==0&&i%100!=0||i%400==0){
days= 29 ;
}else days= 28;
break;
}
nums+=days;
}
}else{
for(int j=1;j<=12;j++){
switch(j){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days= 31;
break;
case 4:
case 6:
case 9:
case 11:
days= 30;
break;
case 2:
if(i%4==0&&i%100!=0||i%400==0){
days= 29 ;
}else days= 28;
break;
}
nums+=days;
}
}
}
return nums;
}
public static int monthDays(int year,int month){
int days=0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return days=31;
case 4:
case 6:
case 9:
case 11:
return days=30;
case 2:
if(year%4==0&&year%100!=0||year%400==0){
return days=29 ;
} return days= 28;
}
return days;
}
public static void print(int total,int monthDays){
System.out.print("sun\tmon\tthes\twes\ttues\tfir\tsater\n");
int a=(total+1-monthDays)%7;
for(int i=1;i<=a;i++){
System.out.print("\t ");
}
for(int i=1;i<=monthDays;i++){
if((i+a)%7==0){
System.out.println(i);
}else{
System.out.print(i+"\t");
}
}
System.out.println();
}
}