java万年历代码仅供参考

import java.util.Scanner;

public class WanNianLi {
public static void main(String[] aegs) {
int sum=0;
int days = 0;
int month ;//月份
int a;
Scanner input=new Scanner(System.in);

do {
    System.out.println("请选择是否继续输入(1.继续输入:2.退出输入:)");
    a=input.nextInt();//接收键盘输入的数字
    if(a==2) {//判断是否结束循环
        System.out.println("程序输入结束");
        break;
    }
    System.out.print("请输入年份:");
    int year=input.nextInt();//接受键盘输入的年份
    System.out.print("请输入月份:");
    month=input.nextInt();//接受键盘输入的月份
    for(int i=1;i<=month;i++) {//判断输入的月份
    switch(i){ 
    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(((year%4==0) && (year%100!=0)) || (year%400==0)) {
            days=29;
        }else{
            days=28;
        }
        break;
    }
    }
    for(int i=1900;i<year;i++) {//判断年份是否是闰年,并进行年份的累加计算
        if(((i%4==0) && (i%100!=0)) || (i%400==0)){
            sum+=366;
        }else{
            sum+=365;
        }
    }
    for(int i=1;i<month;i++){//判断输入的月份并进行累加计算
    switch(i){
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            sum+=31;
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            sum+=30;
            break;
        case 2:
            if(((year%4==0) && (year%100!=0)) || (year%400==0)){
                sum+=29;
            }else{
                sum+=28;
                }
            }
        }
    sum+=1;//总天数加1,判断输入月份的第一天
    int week=sum%7;//判断输入月份的第一天为星期几
    System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");//打印日期表
    int count=0;//周天数累计
    for(int i=0;i<week;i++){
        System.out.print("\t");//每月第一天不是周日则用空格代替
        count++;//空格累计
    }
    for( int i=1;i<=days;i++){
        System.out.print(i+"\t");//输出天数和空格
        count++;//周天数累计
        if(count%7==0){
            System.out.println();//遇到周日进行换行
            }
        }

}while(true);//如果选择1进行循环,继续输入

}

}

点赞