日期公式
// 从公元 1 年 1 月 1 日经过了多少天
int getday(int y, int m, int d) {
if(m < 3) -- y, m += 12;
return (365 * y + y / 4 - y / 100 + y / 400 + (153 * (m - 3) + 2) / 5 + d - 307);
}
// 公元 1 年 1 月 1 日往后数 n 天是哪一天
void date(int n, int &y, int &m, int &d) {
n += 429 + ((4 * n + 1227) / 146097 + 1) * 3 / 4;
y = (4 * n - 489) / 1461, n -= y * 1461 / 4;
m = (5 * n - 1) / 153, d = n - m * 153 / 5;
if (--m > 12) m -= 12, ++y;
}