比较简单,主要是需要稍微算一下,原本想用时间戳偷懒的后来发现不如直接算….

#include <bits/stdc++.h>

const int dayPerMonth[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main() {
while (true) {
int year, month, day;
std::cin >> year;
if (year != -1) {
std::cin >> month >> day;
int leapYear = 0, sum = 0;
// 闰年总数计算
for (int i = 2000; i < year; ++i) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
leapYear++;
}
}

// 当年天数计算
for (int i = 0; i < month; ++i) {
sum += dayPerMonth[i];
}
if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && month >= 2) {
sum++;
}
sum += day;

// 总天数计算
int totalsum = sum;
totalsum += (year - 2000 - leapYear) * 365 + 366 * leapYear - 1;
std::cout << totalsum << std::endl << sum << std::endl;
} else {
break;
}
}
return 0;
}