Advertisement

牛客历年计算机考研复试上机题在线练习:KY258 日期累加

阅读量:

描述

设计一个程序能计算一个日期加上若干天后是什么日期。

输入描述:

输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。

输出描述:

输出m行,每行按yyyy-mm-dd的个数输出。

示例1

输入:

复制代码

输出:

复制代码
复制代码
 #include <cstdio>

    
 #include <iostream>
    
 using namespace std;
    
  
    
 int main() {
    
     int m;
    
     int year, month, day, n;
    
     int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    
     while (cin >> m) { // 注意 while 处理多个 case
    
     for (int i = 0; i < m; i++) {
    
         cin >> year >> month >> day >> n;
    
         while (n--) {
    
             //判断是否是闰年
    
             if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
    
                 days[2] = 29;
    
             } else {
    
                 days[2] = 28;
    
             }
    
             day++;
    
             if (day > days[month]) {
    
                 month++;
    
                 day = 1;
    
                 if (month > 12) {
    
                     year++;
    
                     month = 1;
    
                 }
    
             }
    
         }
    
         printf("%04d-%02d-%02d\n", year, month, day);
    
     }
    
     }
    
 }
    
    
    
    
    AI写代码

year++ 之后还需判断一次是否是闰年

全部评论 (0)

还没有任何评论哟~