给定一个日期,输出这个日期是该年的第几天。
输入
输入年月日
输出
表示该日期是该年的第几天。
样例输入
2016-03-01
样例输出
61
思路 首先考虑闰年,求出月份有多少天最后再将天数加上。先用最易的思路,然后在进行提升。
#include <stdio.h>
int main() {
int x, y, z, a = 0;
scanf("%d%d%d", &x, &y, &z);
switch (y) {
case 1:
a = 0;
break;
case 2:
a = 28;
break;
case 3:
a = 59;
break;
case 4:
a = 90;
break;
case 5:
a = 120;
break;
case 6:
a = 151;
break;
case 7:
a = 181;
break;
case 8:
a = 212;
break;
case 9:
a = 243;
break;
case 10:
a = 273;
break;
case 11:
a = 304;
break;
case 12:
a = 334;
break;
}
a = a + z;
if ((x % 4 == 0 && x % 100 || x % 400 == 0) && y > 2)
a = a + 1;
printf("%d", a);
return 0;
}
简易版
#include <stdio.h>
int main() {
int x, y, z, a = 0, i;
scanf("%d%d%d", &x, &y, &z);
for (i = 1; i < y; i++)
switch (i) {
case 1:
case 3 :
case 5:
case 7:
case 8:
case 10:
case 12:
a += 31;
break;
case 4:
case 6:
case 9:
case 11:
a += 30;
break;
case 2:
a += 28;
break;
}
a = a + z;
if ((x % 4 == 0 && x % 100 || x % 400 == 0) && y > 2)
a = a + 1;
printf("%d", a);
return 0;
}
易错点1i不能i<=y;
case 1, 3, 5, 7, 8, 10, 12:这样写不对