提交记录
Code:
#include <bits/stdc++.h>
using namespace std;
int a[13] {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
struct date {
int y, m, d;
} st, en;
bool operator == (const date& a, const date& b) {
return a.y == b.y && a.m == b.m && a.d && b.d;
}
bool isry(int year) {
if (year % 100 != 0 && year % 4 == 0)
return 1;
if (year % 400 == 0) return 1;
return 0;
}
int getDate(int year, int month) {
if (month != 2) return a[month];
return a[month] - isry(year);
}
date operator ++(date& d, int) {
d.d++;
if (d.d > getDate(d.y, d.m)) {
d.d %= getDate(d.y, d.m);
d.m++;
if (d.m >= 12) {
d.y++;
d.m = 0;
d.d = 0;
}
}
return d;
}
bool ishw(const date& d) {
char s[10];
sprintf(s, "%04d%02d%02d", d.y, d.m, d.d);
int l = 0, r = 7;
while (l <= r) {
if (s[l++] != s[r--]) return false;
}
return true;
}
int main() {
scanf("%4d%2d%2d", &st.y, &st.m, &st.d);
scanf("%4d%2d%2d", &en.y, &en.m, &en.d);
int cnt = 0;
for (date d = st; !(d == en); d++) {
if (ishw(d)) {
cnt++;
}
}
printf("%d", cnt);
return 0;
}