天勤OJ 题目1448: 日期累加
设计一个程序能计算一个日期加上若干天后是什么日期。
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出m行,每行按yyyy-mm-dd的个数输出。
1
2008 2 3 100
2008-05-13
*** 提示已隐藏,点击上方 [+] 可显示 ***
北京理工大学计算机专业2008年研究生复试上机试题
#include<stdio.h>#include<string.h>#include<stdlib.h>int f[13] = {0, 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};bool check(int y) { if (y % 100 == 0) return y % 400 == 0; else return y % 4 == 0;}int main() { int t; scanf("%d", &t); while (t--) { int y, m, d, x; scanf("%d %d %d %d", &y, &m, &d, &x); f[2] = 28 + check(y); d += x; while (d > f[m]) { d -= f[m]; ++m; if (m > 12) { m = 1; ++y; f[2] = 28 + check(y); //重新更新二月份的天数 } } printf("%04d-%02d-%02d\n", y, m, d); } return 0;}