题解 | #日期累加#
日期累加
https://www.nowcoder.com/practice/eebb2983b7bf40408a1360efb33f9e5d
//设计一个程序能计算一个日期加上若干天后是什么日期。 #include<stdio.h> int runnian(year) { if (year % 4 == 0 || year % 100 != 0 && year % 400 == 0) return 1; else return 0; } int main() { int m; int year, month, day, count; int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //每个月的天数 scanf("%d", &m); for (int i = 1; i <= m; i++) { scanf("%d %d %d %d", &year, &month, &day, &count); // 2008 2 3 while (count > 0) { if (runnian(year)) //闰年 2月29天 a[2] = 29; else a[2] = 28; count--; //天数减一 day++; if (day > a[month]) { //日期数大于本月日期数,下一个月 day = 1; month++; } if (month > 12) { //下一年 year++; month = 1; day = 1; } } printf("%04d-%02d-%02d\n", year, month, day); } return 0; }