Java
回文,模拟,判断日期
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
private static boolean isLeap(int year){
return (year%4==0&&year%100!=0)||year%400==0;
}
private static boolean isValidDate(int y,int m,int d){
if(m<1||m>12||d<1){
return false;
}
int[] monthDays={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isLeap(y)){
monthDays[2]=29;
}
return d<=monthDays[m];
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a=in.nextInt();
int b=in.nextInt();
int start_year=a/10000;
int end_year=b/10000;
int count=0;
for(int y=start_year;y<=end_year;y++){
String year_str=Integer.toString(y);
String reversed_year_str=new StringBuilder(year_str).reverse().toString();
int m=Integer.parseInt(reversed_year_str.substring(0,2));
int d=Integer.parseInt(reversed_year_str.substring(2,4));
int date=y*10000+m*100+d;
if(date>=a&&date<=b){
if(isValidDate(y,m,d)){
count++;
}
}
}
System.out.println(count);
}
}

京公网安备 11010502036488号