信息
- ID
- 1183
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 递交数
- 14
- 已通过
- 4
- 上传者
#include <iostream>
#include <cstdlib>
using namespace std;
//定义数组days, 第n项表示n月的天数
int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
//判断闰年的函数
bool leap_year(int n){
return (n % 400 == 0 || (n % 4 == 0 && n % 100 != 0));
}
int main(){
int y, m, d, d2, flag = 0;
scanf("%d-%d-%d", &y, &m, &d);
if(leap_year(y)){
days[2] = 29; //闰年的二月有29天,更新days数组
if(m == 2 && d == 28){
d2 = 29; //d2表示答案
flag = 1;
}
else if(m == 2 && d == 29){
m++; //二月29日的下一天要向月份进一
d2 = 1; //将天数重新设置为1
flag = 1;
}
}
if(!flag){ //如果不是闰年二月
d2 = d;
d2++;
}
if(m == 12 && d == 31){ //跨年
y++;
printf("%d-1-1\n", y);
return 0;
}
if(d == days[m]){ //小月或大月的跨月
m++;
d2 = 1;
}
printf("%d-%02d-%02d\n", y, m, d2);//输出年月日,月和日不满两位用0补全
system("pause"); //冻结屏幕
return 0; //退出程序
}