Question:輸入某年某月某日,判斷這一天是這一年的第幾天?

分析:需判斷當年是否為閏年,因閏年在二月份會多一天

閏年規則:

  • 西元年分除以4不可整除,為平年。
  • 西元年份除以4可整除,且除以100不可整除,為閏年。
  • 西元年份除以100可整除,且除以400不可整除,為平年
  • 西元年份除以400可整除,為閏年

Code:

#include<stdlib.h>
#include<stdio.h>

int main(){

    int year,month,day,daysum,leap,intpuut;
    printf("Please Input Year\n");
    scanf("%d",&year);
    printf("Please Input Mouth\n");
    scanf("%d",&month);
    printf("Please Input Day\n");
    scanf("%d",&day);
    switch(month){     // switch裡面為每個月加總 比方說輸入月份為一月, 就直接取幾幾日就可得知 當年第幾天, 二月之後 為每個月加總
        case 1:
            daysum=0; 
            break;
        case 2:
            daysum=31; 
            break;
        case 3:
            daysum=59; 
            break;
        case 4:
            daysum=90; 
            break;
        case 5:
            daysum=120; 
            break;
        case 6:
            daysum=151; 
            break;
        case 7:
            daysum=181; 
            break;
        case 8:
            daysum=212; 
            break;
        case 9:
            daysum=243; 
            break;
        case 10:
            daysum=273; 
            break;
        case 11:
            daysum=304; 
            break;
        case 12:
            daysum=334; 
            break;        
    }
    if(year%400==0||(year%4==0&&year%100!=0)){ //判斷 是否為閏年,閏年二月份會多一天變成二十九天,固須要多增加一天)
            leap=1;
    }
    else{
            leap=0;
    }
    if(leap==1&&month>=2){
        daysum++;
    }
    intpuut=daysum+day;
    printf("It is %d day",intpuut);
}

results matching ""

    No results matching ""