計算第幾天

輸入一個有效 y 年 m 月 d 日,計算當日是那一年的第幾天 (第 n 天)。例如,2018年1月2日是第2天。
 avatar
user_6817964
c_cpp
2 years ago
645 B
3
Indexable
Never
#include <stdio.h> // printf
int main()
{
    int y, m, d, days, sum = 0;
    scanf_s("%d%d%d", &y, &m, &d);
    while (m > 1) {
        m --;
        switch (m) {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            days = 31; break;
        case 4: case 6: case 9: case 11:
            days = 30; break;
        case 2:
            if ((y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0)))
                days = 29;
            else
                days = 28; break;
        default:
            days = 0; break;

        }
        sum += days;
    }
    int n = sum + d;
    printf("%d", n);
}