(java语言)今天是第几天?输入年、月、日,计算该天是本年的第几天 ?
题目来自牛客网:
- 题目描述:
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)
- 输出描述
输出可能有多组测试数据,对于每一组测试数据, 输出一个整数,代表Input中的年、月、日对应本年的第几天。
- 实例
输入: 1990 9 20 20 5 1 .。。。。
输出:
263
122
注 : 掌握String类中的split()拆分方法,闰年的判别方法year % 4 == 0 && year % 100 !=0 || year % 400 == 0
代码实现:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
//判断某一天是当年的第几天
Scanner in = new Scanner(System.in);
//这里的输入格式是1990 9 20 2000 5 1... 在一行
String input = in.nextLine();
String[] arrs = input.split(" ");//通过空格拆分
//System.out.println(Arrays.toString(arrs));
int year = 0,day = 0,month = 0;
int index = 0;
for (int i = 0; i < arrs.length/3; i++) {//拆开,每三个是一组
year = Integer.parseInt(arrs[3*i+0]);
month = Integer.parseInt(arrs[3*i+1]);
day = Integer.parseInt(arrs[3*i+2]);
int num = findNumberOfDays(year,month,day);
System.out.println(num);
}
}
//计算天数
public static int findNumberOfDays(int year,int month,int day){
//定义数组,表示每个月应该加多少
int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int num = 0;
for(int x = 0;x < month; x++){//算月的天数
num += days[x];
}
num = num +day;//加上日的天数
if (year % 4 == 0 && year % 100 !=0 || year % 400 == 0) {
if(month > 3){ // 闰年二月多的一天
num++;
}
}
return num;
}
}