玩命加载中 . . .

日期类


http://t.cn/E9RJUp4

描述

编写一个日期类,要求按xxxx-xx-xx 的格式输出日期,实现加一天的操作。

输入描述:

输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。

输出描述:

输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。

示例1

输入:

2
1999 10 20
2001 1 31

输出:

1999-10-21
2001-02-01
#define _CRT_SECURE_NO_WARNINGS 1
#include <bits/stdc++.h>
using namespace std;

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

int monthday[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };

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

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