今科云平台网站建设技术百度指数批量
描述
设计一个程序能计算一个日期加上若干天后是什么日期。
输入描述:
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出描述:
输出m行,每行按yyyy-mm-dd的个数输出。
示例1
输入:
1 2008 2 3 100
输出:
2008-05-13
#include <iostream>
using namespace std;int Getmonthday(int year, int month)
{int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };int add = 0;if (month == 2 && (year % 4 == 0 && year % 100 != 0) || year % 400 == 0){arr[2] = 29;}return arr[month];
}
class Date
{
public:Date operator+=( int n){_day += n;while (_day > Getmonthday(_year, _month)){_day -= Getmonthday(_year, _month);++_month;if (_month == 13){++_year;_month = 1;}}return *this;}Date(int year, int month, int day){_year = year;_month = month;_day = day;}void Prinf(){printf("%04d-%02d-%02d\n", _year, _month, _day);}
private:int _year;int _month;int _day;
};int main() {int i;cin >> i;int year, month, day, n;for (int j = 0; j < i; j++){cin >> year >> month >> day >> n;Date d(year, month, day);d += n;d.Prinf();}return 0;
}
结果: