天勤OJ 题目1448: 日期累加 (二)
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;
}
#include
#include
#include
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;
}