题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
#include <iostream> using namespace std; int main() { int N = 0; cin >> N; while (N--) { int monthall[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int year, month, day, n; cin >> year >> month >> day >> n; day += n; if (day > 59 && (year % 4 == 0 && year % 100 != 0) || ( year % 400 == 0)) { monthall[2] = 29; } while (day > monthall[month]) { day -= monthall[month]; month++; if (month > 12) { month = 1; year++; if (day > 59 && (year % 4 == 0 && year % 100 != 0) || ( year % 400 == 0)) { monthall[2] = 29; } else { monthall[2] = 28; } } } if (day >= 10 && month >= 10) printf("%d-%d-%d", year, month, day); else if (day < 10 && month >= 10) printf("%d-%d-0%d", year, month, day); else if (day >= 10 && month < 10) printf("%d-0%d-%d", year, month, day); else printf("%d-0%d-0%d", year, month, day); printf("\n"); } } // 64 位输出请用 printf("%lld")