注意点:①月可能超过12月 ②新年需要重新判断闰年
日期累加
#include <stdio.h>int pd(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}int main() {int m;int year, month, day, add;scanf("%d", &m);for (int i = 1; i <= m; i++) {scanf("%d %d %d %d", &year, &month, &day, &add);int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 1-12月天数if (pd(year)) a[2] = 29; // 处理闰年 2 月while (add > 0) {if (day + add <= a[month]) {day += add;break;} else {add -= (a[month] - day + 1);day = 1;month++;if (month > 12) {month = 1;year++;if (pd(year))a[2] = 29; // 新年可能是闰年elsea[2] = 28;}}}printf("%d-%02d-%02d\n", year, month, day);}return 0;
}