2020-04-22

判断一天是某年的第几天

public static void main(String[] args) {
		Scanner scan = new 
		Scanner(System.in);		
		System.out.println("请输入年:");		
		int year = scan.nextInt();		
		System.out.println("请输入月:");		
		int month = scan.nextInt();		
		System.out.println("请输入日:");		
		int day = scan.nextInt();		
		scan.close();		
		int sum = 0; //变量,表示是这一年的第几天			
		if(year<1) {//判断年是否输入错误			
		System.out.println("年输入格式错误。");			
		return;		}		
		if(month<1||month>12) {//判断月是否输入错误		
		System.out.println("月输入格式错误。");			
		return;		}						
		boolean leap = false;//默认非闰年		
		if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0)){			
		leap = true; //闰年的标志		}		//判断日是否输入错误		
		boolean dayFlag = false;//默认无错误		
		switch(month) {		
		case 1:		
		case 3:		
		case 5:		
		case 7:		
		case 8:		
		case 10:		
		case 12:			
		   if(day<1||day>31)				
		        dayFlag = true;			
		break;		
		case 2:			
		if(day<1||(leap&&day>29)||(!leap&&day>28))
		   dayFlag = true;		
		break;		
		case 4:		
		case 6:		
		case 9:		
		case 11:			
		if(day<1||day>30)				
		    dayFlag = true;			
		break;		}		
		if(dayFlag) {			
		   System.out.println("日输入格式错误。");			
		return;//直接结束		}		
		//计算日期是当年的第几天		
		switch(month) {		
		case 1:sum = 0;break;		
		case 2:sum = 31;break;//+31		
		case 3:sum = 59;break;//+28		
		case 4:sum = 90;break;//+31		
		case 5:sum = 120;break;//+30		
		case 6:sum = 151;break;//+31		
		case 7:sum = 181;break;//+30		
		case 8:sum = 212;break;//+31		
		case 9:sum = 243;break;//+31		
		case 10:sum = 273;break;//+30		
		case 11:sum = 304;break;//+31		
		case 12:sum = 334;break;//+30		}		
		sum += day;		
		if(leap&&month>2) {//如果闰年且月份大于2,加一天			
		sum += 1;		}		
		//输出		
System.out.println(year+"年"+month+"月"+day+"日是当年的第"+sum+"天。");			}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值