1. 程式人生 > >mooc中習題--計算天數

mooc中習題--計算天數

7-19 計算天數(15 分)
本題要求編寫程式計算某年某月某日是該年中的第幾天。


輸入格式:


輸入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)給出日期。注意:閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。閏年的2月有29天。


輸出格式:


在一行輸出日期是該年中的第幾天。


輸入樣例1:


2009/03/02
輸出樣例1:


61
輸入樣例2:


2000/03/02
輸出樣例2:


62




我的程式:


#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
int Jan=31;
int Feb=28;
int Mar=31;
int Api=30;
int May=31;
int Jun=30;
int Jul=31;
int Aug=31;
int Spe=30;
int Oct=31;
int Nov=30;
int Dec=31;
//是否是閏年
int a,b;
a=year%4;
b=year%100;
int c=year/400;
     if(((a==0)&&(b!=0))||c==0) 
{Feb++;
}
//

int ordinal;
switch(month){
case 1:
ordinal=day;
break;
case 2:
ordinal=Jan+day;
break;
case 3:
ordinal=Jan+Feb+day;
break;
case 4:
ordinal=day+Feb+Mar+Jan;
break;
case 5:
ordinal=day+Feb+Mar+Api+Jan;
break;
case 6:
ordinal=day+Jan+Feb+Mar+Api+May;
break;
case 7:
ordinal=day+Jan+Feb+Mar+Api+May+Jun;
break;
case 8:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul;
break;
case 9:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug;
break;
case 10:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe;
break;
case 11:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct;
break;
default:
ordinal=day+Jan+Feb+Mar+Api+May+Jun+Jul+Aug+Spe+Oct+Nov;
break;
}printf("%d\n",ordinal);
return 0;
 }