首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言計算指定日期為當年第幾天

     編輯:C 語言問答

演算法:累加前月天數 + 當月日數 + 閏年修正

閏年判斷

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 天閏年年末
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved