18:Tomorrow never knows?
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。
读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。
- 输入
- 输入仅一行,格式为yyyy-mm-dd的日期。
- 输出
- 输出也仅一行,格式为yyyy-mm-dd的日期
- 样例输入
-
2010-07-05
- 样例输出
-
2010-07-06
- 提示
- 闰年的标准:
(1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)
地球公转示意图
(2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)
输入语句scanf("%d-%d-%d",&y,&m,&d)可以存储年,月,日.输出语句格式类似printf("%d-%02d-%02d\n",year,month,day). -
1 #include<cstdio> 2 using namespace std; 3 int main() 4 { 5 int x,m,d; 6 scanf("%d-%d-%d",&x,&m,&d); 7 if((x%400==0)||((x%4==0)&&(x%100!=0))) 8 { 9 if(m==1||m==3||m==5||m==7||m==8||m==10) 10 { 11 if(d==31) 12 { 13 printf("%d-%02d-%02d\n",x,m+1,d-30); 14 } 15 else 16 { 17 printf("%d-%02d-%02d\n",x,m,d+1); 18 } 19 } 20 else if(m==12) 21 { 22 if(d==31) 23 { 24 printf("%d-%02d-%02d\n",x+1,m-11,d-30); 25 } 26 else 27 { 28 printf("%d-%02d-%02d\n",x,m,d+1); 29 } 30 } 31 else if(m==4||m==6||m==9||m==11) 32 { 33 if(d==30) 34 { 35 printf("%d-%02d-%02d\n",x,m+1,d-29); 36 } 37 else 38 { 39 printf("%d-%02d-%02d\n",x,m,d+1); 40 } 41 } 42 else 43 { 44 if(d==29) 45 { 46 printf("%d-%02d-%02d\n",x,m+1,d-28); 47 } 48 else 49 { 50 printf("%d-%02d-%02d\n",x,m,d+1); 51 } 52 } 53 } 54 else 55 { 56 if(m==1||m==3||m==5||m==7||m==8||m==10) 57 { 58 if(d==31) 59 { 60 printf("%d-%02d-%02d\n",x,m+1,d-30); 61 } 62 else 63 { 64 printf("%d-%02d-%02d\n",x,m,d+1); 65 } 66 } 67 else if(m==12) 68 { 69 if(d==31) 70 { 71 printf("%d-%02d-%02d\n",x+1,m-11,d-30); 72 } 73 else 74 { 75 printf("%d-%02d-%02d\n",x,m,d+1); 76 } 77 } 78 else if(m==4||m==6||m==9||m==11) 79 { 80 if(d==30) 81 { 82 printf("%d-%02d-%02d\n",x,m+1,d-29); 83 } 84 else 85 { 86 printf("%d-%02d-%02d\n",x,m,d+1); 87 } 88 } 89 else 90 { 91 if(d==28) 92 { 93 printf("%d-%02d-%02d\n",x,m+1,d-27); 94 } 95 else 96 { 97 printf("%d-%02d-%02d\n",x,m,d+1); 98 } 99 } 100 } 101 return 0; 102 }