int is_leap(int y)
{
return (y % 4 == 0 && y % 100 != 0) || (y % 400 == 0);
}
#include <stdio.h>
int main()
{
int y, m, d;
printf("輸入 年 月 日 (例: 2024 3 15): ");
if (scanf("%d %d %d", &y, &m, &d) != 3) return 1;
int month_days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
if (is_leap(y)) month_days[1] = 29;
int day_of_year = d;
for (int i = 0; i < m - 1; i++)
day_of_year += month_days[i];
printf("%d-%02d-%02d 是 %d 年的第 %d 天\n", y, m, d, y, day_of_year);
return 0;
}
| 輸入 | 輸出 | 說明 |
|---|---|---|
| 2024 1 1 | 第 1 天 | 年初 |
| 2024 2 29 | 第 60 天 | 閏年 2/29 |
| 2024 3 1 | 第 61 天 | 閏年 3/1 |
| 2023 3 1 | 第 60 天 | 平年 3/1 |
| 2024 12 31 | 第 366 天 | 閏年年末 |