具体c语言代码如下:
#include<stdio.h>
int day[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int main()
{
int y, m, d, k;
scanf("%d %d %d %d", &y, &m, &d, &k);
for (int i = 1;i <= k;i++)
{
if (y % 400 == 0 || (y % 100 != 0 && y % 4 == 0)) {
day[2] = 29;
}
else {
day[2] = 28;
}
d++;
if (d == day[m]+1) {
d = 1;
m++;
}
if (m == 13) {
m = 1;
y++;
}
}
printf("%04d-%02d-%02d", y, m, d);
return 0;
}
当day超过当前月份最大日期时,将day重置为下一月份的1号,并将月份自增,当月份超过时进行同样的操作,要注意判断闰年的情况