蓝桥杯其他真题点这里👈
注意日期合法的判断
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
static int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
static BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
String[] init = in.readLine().split("/");
int a = Integer.parseInt(init[0]);
int b = Integer.parseInt(init[1]);
int c = Integer.parseInt(init[2]);
for (int i = 19600101; i < 20591231; i++) {
int year = i / 10000;
int month = i / 100 % 100;
int day = i % 100;
if (check(year,month,day)){
if (year % 100 == a && month == b && day == c //abc
|| year % 100 == c && month == a && day == b //cab
|| year % 100== c && month == b && day == a //cba
) System.out.printf("%d-%02d-%02d\n",year,month,day);
}
}
in.close();
}
public static boolean check(int year,int month,int day){
//月份异常
if (month == 0 || month > 12) return false;
//天数异常
if (day == 0 || month != 2 && day > days[month]) return false;
//不是2月的情况可能会在这出现,比如1月32号
if(month == 2){
//单独判断月份为2时是否是闰年
int res = 0;
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) res++;
if (day > 28 + res) return false;
}
return true;
}
}