輸入格式「yyyy/mm/dd」,輸出該日期是當年的第幾天。閏年規則:能被 4 整除但不能被 100 整除、或能被 400 整除。
#include
int isLeap(int y) {
return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
int main() {
int y, m, d;
scanf("%d/%d/%d", &y, &m, &d);
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (isLeap(y)) days[1] = 29;
int sum = 0;
for (int i = 0; i < m - 1; i++) sum += days[i];
sum += d;
printf("%d\n", sum);
return 0;
}
| 輸入 | 輸出 | 說明 |
|---|---|---|
| 2009/03/02 | 61 | 平年 1+2 月 31+28=59 +2=61 |
| 2000/03/02 | 62 | 閏年 2 月 29 天,59+1+2=62 |
教材經典例題,百度「C語言 計算年內第幾天」即可找到海量講解與變體。