| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 148127 | 冯祥瑞 | 18岁生日 | C++ | Accepted | 1 MS | 268 KB | 972 | 2026-02-09 17:12:24 |
#include <iostream> #include <cstdio> using namespace std; // 函数用于将日期转换为儒略日数 long long julianDay(int year, int month, int day) { if (month <= 2) { year--; month += 12; } long long a = year / 100; long long b = a / 4; long long c = 2 - a + b; long long e = static_cast<long long>(365.25 * (year + 4716)); long long f = static_cast<long long>(30.6001 * (month + 1)); return c + day + e + f - 1524; } int main() { int T; cin >> T; while (T--) { int y, m, d; scanf("%d-%d-%d", &y, &m, &d); // 处理2月29日这种特殊情况,18年后可能不存在该日期 if (m == 2 && d == 29) { cout << -1 << '\n'; continue; } long long birth = julianDay(y, m, d); long long eighteen = julianDay(y + 18, m, d); cout << eighteen - birth << '\n'; } return 0; }