- 平年与闰年
- 关于while-scanf: 题目没给定输入量的边界 ,使用文件末尾标识符EOF判断
- Ctrl +Z打断输入
#include<cstdio>
#include<cstdlib>
int IsLeap(int year) {
if ((year/400 == 0)||((year / 100 != 0) && (year/4 == 0))) {
return true;
}
return false;
}
int month[13][2] ={{0, 0}, {31, 31}, {29, 28}, {31, 31},
{30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30},
{31, 31}, {30, 30}, {31, 31} };
int main() {
int time1,time2;
while (scanf("%d %d", &time1,&time2) != EOF) {
if (time1 > time2) {
time1 = time1 ^ time2;
time2 = time2 ^ time1;
time1 = time1 ^ time2;
}
int y1 = time1/10000, m1 = time1/100%100, d1 = time1 % 100;
int y2 = time2/10000, m2 = time2/100%100, d2 = time2 % 100;
int ans = 1;
while (y1 < y2 || m1 < m2 || d1 < d2) {
++d1;
if(d1 == month[m1][IsLeap(y1)] + 1) {
++m1;
d1 = 1;
}
if (m1 == 13) {
++y1;
m1 = 1;
}
++ans;
}
printf("两个年份之间差距为 %d 天",ans);
}
system("pause");
return 0;
}