1.题目概述
根据输入的日期,计算是这一年的第几天。
输入描述:
输入一行,每行空格分割,分别是年,月,日
输出描述:
输出是这一年的第几天
示例:
输入:1982 3 4
输出:63
2.题解
思路分析
将每个月的天数保存在一个数组中,若输入年份是闰年,则二月的天数+1,判断输入是否正确,若输入错误,则将天数置为-1,若输入正确,利用循环计算输入月份之前的天数,最后再加上输入的天数
具体实现
importjava.util.Scanner; publicclassMain { publicstaticvoidmain(String[] args) { Scannerin=newScanner(System.in); inty=in.nextInt(); intm=in.nextInt(); intd=in.nextInt(); intsum=date(y, m, d); System.out.print(sum); } publicstaticintdate(inty, intm, intd){ intsum=0; //存储每月的天数int[] month= {0,31,28,31,30,31,30,31,31,30,31,30,31}; //判断输入是否正确if(y<=0||m<=0||m>12||d<=0||d>month[m]){ return-1; } //判断是否为闰年if(y%400==0|| (y%4==0&&y%100!=0)){ month[2] +=1; } //计算输入月份之前的天数for(inti=1; i<m; i++){ sum+=month[i]; } //加上输入的天数sum+=d; returnsum; } }
注:本题出自牛客网,链接如下: