int days[13] = { 29,31,28,31,30,31,30,31,31,30,31,30,31 };
boolcheck(int year, int month, int day) { if (month <= 0 || month > 12)returnfalse; if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) month = 0; if (day <= 0 || day > days[month]) returnfalse; returntrue; } intmain() { int a, b, c; scanf("%d/%d/%d", &a, &b, &c);
// 枚举日期 for (int date = 19600101; date <= 20591231; date++) { int year = date / 10000; int month = date % 10000 / 100; int day = date % 100; // 判断 if (check(year, month, day)) { if (year % 100 == a && month == b && day == c || month == a && day == b && year % 100 == c || day == a && month == b && year % 100 == c) printf("%d-%02d-%02d\n", year, month, day); } } return0; }