输入特定的年月 输出万年历

import java.util.Random;
import java.util.Scanner;


	
	public class Demo1
	{	
		public static void main(String[] args)
		{ 
			Scanner sc =new Scanner(System.in);
			System.out.println("输入年");
			int year=sc.nextInt();
			System.out.println("输入月");
			int month=sc.nextInt();
			
			//先判断输入年是否是闰年
			int is=0;//用来标识输入年是否是闰年0表明不是,1表明是
			if(year%4==0&&year%100!=0||year%400==0){
				is=1;
			}
			
			//输入年的每月份的天数
			int[] e_month=new int[]{31,0,31,30,31,30,31,31,30,31,30,31};
			
				   if(is==1)
					   e_month[1]=29;//若为闰年二月29天,不然28天
				   else 
					   e_month[1]=28;		
				   		
			
			
			/*计算所输年份距1900年1月1日(周一)的天数+所输月份距离所输
			年份1月1日的天数,根据总天数得出所输月份第一天的星期*/
			
			//所输年份距1900年1月1日(周一)的天数--使用for循环计算
			int y_days=0;
			for(int i=1900;i<year;i++){
				if(i%4==0&&i%100!=0||i%400==0){
					y_days+=366;
				}else
					y_days+=365;
				
			}
			
			
			//计算所输月份距离所输年份1月1日的天数
			int m_days=0;
			for(int i=1;i<month;i++){//month-1 表示假如输入5月份 要把前四个月天数相加 
				m_days+=e_month[i-1];
			}
			
			int week=(y_days+m_days)%7+1;//输入月第一天的星期
			
			//输出该月的日历
			System.out.println("星期日"+"\t"+"星期一"+"\t"+"星期二"+"\t"
			+"星期三"+"\t"+"星期四"+"\t"+"星期五"+"\t"+"星期六"+"\t");
			
			int n=0;//用来记录每7个格进行换行的标志
			//输出该月开始的空白符
			if(week!=7){//当第一天为周日时没有空白符
				for(int i=0;i<week;i++)
					System.out.print("\t");
				n=week;
			}
			
			
			
			
			//输出日期
			for(int i=1;i<=e_month[month-1];i++){
				 System.out.print(i+"\t");
				 n++;
				 if(n==7){
					 System.out.println();
					 n=0;
				 }
				 
			}
			
		}
	}