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

C語言經典習題:日期轉年內天數(含閏年判斷邏輯)

     編輯:關於C語言

題目描述

輸入年月日,計算該日期是當年的第幾天。

算法步驟

  1. 累加前幾月天數(用 switch 查表)
  2. 加上當月天數
  3. 若閏年且月份 > 2,再加 1 天

閏年判斷標準

if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
    leap = 1;
else
    leap = 0;

完整代碼

#include 
#include 

int main() {
    int day, month, year, sum = 0, leap = 0;
    printf("please input year,month,day\n");
    scanf("%d,%d,%d", &year, &month, &day);
    switch (month) {
        case 1: sum = 0;   break;
        case 2: sum = 31;  break;
        case 3: sum = 59;  break;
        case 4: sum = 90;  break;
        case 5: sum = 120; break;
        case 6: sum = 151; break;
        case 7: sum = 181; break;
        case 8: sum = 212; break;
        case 9: sum = 243; break;
        case 10: sum = 273; break;
        case 11: sum = 304; break;
        case 12: sum = 334; break;
        default: printf("data error"); return 1;
    }
    sum += day;
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) leap = 1;
    if (leap && month > 2) sum++;
    printf("It is the %dth day.", sum);
    getch();
    return 0;
}

運行示例

VC6 調試截圖

輸入 2012,3,5 → 閏年、3月>2 → 31+29+5 = 65 天

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved