编写一个日期类,要求按 xxxx-xx-xx
的格式输出日期,实现加一天的操作。
输入格式
第一行包含整数 T T T,表示共有 T T T 组测试数据。
每组数据占一行,包含 3 3 3 个用空格隔开的整数,分别表示年月日。
输出格式
每组数据输出一行,一个结果,按 xxxx-xx-xx
的格式输出,表示输入日期的后一天的日期。
数据范围
输入日期保证合法且不会出现闰年。
年份范围 [ 1000 , 3000 ] [1000,3000] [1000,3000]
输入样例:
2
1999 10 20
2001 1 31
输出样例:
1999-10-21
2001-02-01
#include<iostream>
using namespace std;
int md[] = {
0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
void next_day(int& y, int &m, int &d){
d ++;
int days = md[m];
if((y % 400 == 0 || y % 100 != 0 && y % 4 == 0) && m == 2)
days++;
if(d > days) d %= days, m++;
if(m > 12) m %= 12, y++;
}
int main(){
int t;
cin >> t;
int y, m, d;
while(t--){
cin >> y >> m >> d;
next_day(y, m, d);
printf("%04d-%02d-%02d\n", y, m, d);
}
return 0;
}