玩命加载中 . . .

日期累加


http://t.cn/E9Yw0Cr

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

1
2008 2 3 100

输出:

2008-05-13
#include <bits/stdc++.h>
using namespace std;

bool isLeapYear(int year){
    if(year%400==0 || year%4==0 && year%100!=0) return true;
    else return false;
}

int main(){
    int n;
    int year, month, day, num;
    cin >> n;
    while(n--){
        int month_day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        if(isLeapYear(year)) month_day[2] = 29;
        cin >> year >> month >> day >> num;
        int overday = num+day;
        while((overday) > month_day[month]){
            overday -= month_day[month];
            month++;
            if(month>12){
                month = 1;
                year++;
                if(isLeapYear(year)) month_day[2] = 29;
                else month_day[2] = 28;
            }
        }
        printf("%04d-%02d-%02d\n", year, month, overday);
    }
    return 0;
}

文章作者: Jack Tim
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jack Tim !
评论
  目录