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);
}