用java进行简单的万年历编写

 import java.util.Scanner;
 public class PrintCalendarDemo1 
{
	public static void main(String[] args) 
	{
		int year;//保存输入的年
		int month;//保存输入的月
		boolean isRn;//闰年保存true,否则为false
		int days=0;//保存月份的天数
		int totalDays=0;//保存总的天数差
		System.out.println("***************使用万年历***************");
		Scanner input= new Scanner(System.in);
		System.out.println("请输入年");
		year = input.nextInt();
		System.out.println("请输入月");
		month = input.nextInt();

		if((year%400==0) || (year%4==0&& year%100!=0)){
			isRn = true;
		}else{
				isRn= false;
		}
		if(isRn){
			System.out.println(year+"年" + "是闰年");
		}else
		{
			System.out.println(year+"年" + "不是闰年");
		}
		//计算年的总天数
		for(int i=1900;i<year;i++){
			if(i%400==0||(i%4==0&&i%100!=0)){
				totalDays+=366;
			}else{
				totalDays+=365;
			}
		}
		//计算输入月份之前的总天数
		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 2:
				if(isRn){
					days=29;
				}else{
					days=28;
				}
				break;
			case 4:
			case 6:
			case 9:
			case 11:
				days=30;
				break;
			default:
				System.out.println("输入的月份有误!");
			}
			//输入月的天数保存到days变量,但不累加
			if(i!=month){
				totalDays+=days;
			}

		}
		//求出星期几,其实就是前面\t的个数
		int beforDays;
		beforDays=1+totalDays%7;
		if(beforDays==7){
			beforDays=0;
		}
		System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
		for(int i=0;i<beforDays;i++){
			System.out.print("\t");
		}
		for(int i=1;i<=days;i++){
			System.out.print(i+"\t");
			if((i+beforDays)%7==0){
				System.out.println();
			}
		}
	
	System.out.println();	
	System.out.println(year+"年"+month+"月"+"有"+days+"天");

	}
}

 

你可能感兴趣的:(用java进行简单的万年历编写)