HDACM1201
如果他的生日是xxxx年2月29日,若xxxx+18不是润年则输出-1,否则开始判断他是在3月前出生还是在3月后出生,若是3月前出生,则判断今年是不是闰年,是闰年则+1,若是3月后出生则判断下一年是不是闰年,是闰年则+1,依次循环到第17年。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner( System.in );
char[] day = {31,28,31,30,31,30,31,31,30,31,30};
int t = sc.nextInt();
while(t-->0){
String birthDay = sc.next();
String[] strs = birthDay.split("-");
int y = Integer.parseInt(strs[0]);
int m = Integer.parseInt(strs[1]);
int d = Integer.parseInt(strs[2]);
int sum = 18*365;
if (!isLeapYear(y+18)&&m==2&&d==29) {
System.out.println("-1");
continue;
}
for (int i = 0; i < 18; i++) {
if (m<3) {
if (isLeapYear(y+i)) {
sum++;
}
}else {
if (isLeapYear(y+i+1)) {
sum++;
}
}
}
System.out.println(sum);
}
}
public static boolean isLeapYear(int year){
if (year%400==0||year%100!=0&&year%4==0) {
return true;
}
return false;
}
}