第几天
问题描述:
输入一个日期,输出这个日期是这一年的第几天
输入格式
输入三个整数 y , m , d 分别表示年月日,数据均在int范围内。
输出格式
输出一个整数,表示这是今年的第几天。
数据范围
对于 60% 的数据,1≤y,m,d≤105
对于100% 的数据,y, m, d均是 int 范围内的正整数。
保证数据均是合法的日期。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
2018 1 1
样例输出
1
具体解答:
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int y = s.nextInt();
int m = s.nextInt();
int d = s.nextInt();
int today = 0;
int days = 0;
if (y > 0 && m > 0 && m < 13 && d> 0 && d< 32) {
for (int i = 1; i < m; i++) {
switch (i) {
case 1: case 3:
case 5: case 7:
case 8: case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2: {
if ((y % 4 == 0 && y % 1 != 0) || (y% 400 == 0)) {
days = 29;
} else {
days = 28;
}
break;
}
}
today = today + days;
}
today = today + d;
System.out.println(today);
}
else
System.out.println("输入格式错误");
}
结果展示: