1.编写目的
刷OJ题时的笔记:输入日期,要求输出一万天以后的日期。
2.详细过程
输入
输入有多行,格式为YY MM DD 其中1949<=YY<=2006,日期绝对合法。
输出
输出有多行。即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。
代码
#include<stdio.h>
/**
* 计算一万天以后的日期
* 作者:Smileyan
* 2019/6/7
*/
/* 判断是不是闰年 */
bool function(int year) {
if((year%4 == 0 && year%100 != 0) || year%400==0) {
return true;
}
return false;
}
int main() {
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c)==3) {
short ary[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int day = 0;
for(;day<=10000; day++) {
if(function(a)) {
ary[1]=29;
}else{
ary[1]=28;
}
// day
if(c<ary[b-1]) {
c++;
continue;
}
// month
if(b<12) {
b++;
c=1;
continue;
}
// year
a++;b=1;c=1;
}
//cout<<a<<"-"<<b<<"-"<<c-1<<endl;
printf("%d-%d-%d\n",a,b,c-1);
}
return 0;
}
简单说来,就是单纯地数数,日数满日这个月的最大天数,就加月,月超过12了就加年数。
3.总结
很多时候其实用看起来最愚蠢的方法解决问题却是最简单的方法。
Smileyan 2019年6月7日