万年历

/*

  • 输入年份和月份并计算距离1900年1月1日多少天
  • 闰年:能被400或4整除,但不能被100整除
  • 31天:1,3,5,7,8,10, 12
  • 30天4,6,9, 11
  • 2月:28,29
    */
Scanner sc = new Scanner(System.in);
		System.out.println("请输入年份");
		int y = sc.nextInt();
		if(y<1900){
			System.out.println("输入错误");
			return;
		}
		System.out.println("请输入月份");
		int m = sc.nextInt();
		if(m<1||m>12){
			System.out.println("输入错误");
			return;
		}
		int s = 0;
		//判断是否为闰年
		//计算整年天数
		for(int i=1900;i<y;i++)
		{
		if(i%4==0 && i%100!=0 || i%400==0){
			s = s+366;
		}else {
			s = s+365;			
		}		
		}
		//计算整月天数
		for(int i = 1;i<m;i++){
			if((y%4==0 && y%100!=0 || y%400==0)&&i==2){
				 s=s+29; 
			}else if(!(y%4==0 && y%100!=0 || y%400==0)&&i==2){
				
				 s=s+28;
			}else if(i==4 || i==6 ||i==9 ||i==11){
				 s=s+30;
			}else{
				s=s+31;
			}			
	}
		s=s+1;		
		System.out.println("------"+y+"年"+m+"月"+"------");
		System.out.println("日     一     二     三     四     五     六");
		int week=s%7;
		//判断输入月份有多少天
		int M = 0;
		if((y%4==0 && y%100!=0 || y%400==0)&&m==2){
			 M=29; 
		}else if(!(y%4==0 && y%100!=0 || y%400==0)&&m==2){
			
			 M=28;
		}else if(m==4 || m==6 ||m==9 ||m==11){
			 M=30;
		}else{
			M=31;
		}		
		//打印开头空白
		for(int i = 0;i<week;i++){
			System.out.print("   ");
			}
		//打印日期
			for(int i = 1;i<=M;i++){
				//打印小于10的日期并补空格
				if(i<10){
					System.out.print(" ");
				}			
				if((week+i)%7==0){//每到星期六就需要换行
					System.out.println(i+" ");
				}else{
					System.out.print(i+" ");
				}
			}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值