Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20 2006/3/12
Sample Output
20
71
#include<stdio.h>
int month[13][2]={{0,0},{31,31},{28,29},{31,31},{30,30},{31,31},{30,30},{31,31},{31,31},{30,30},{31,31},{30,30},{31,31}};
int panduan(int n)
{
if((n%4==0&&n%100!=0)||(n%400==0))
return 1;
else
return 0;
}
int main()
{
int year,yue,ri;
while(scanf("%d/%d/%d",&year,&yue,&ri)!=EOF)
{
int sum=0;
for(int i=1;i<yue;i++)
{
int k=panduan(year);
sum=sum+month[i][k];
}
sum=sum+ri;
printf("%d\n",sum);
}
return 0;
}
方法二;
#include<stdio.h>
#include<conio.h>
int main()
{
int year,month,day;
int d=0;
scanf("%d%d%d",&year,&month,&day);
switch(month)
{
case 12: d+=30;
case 11: d+=31;
case 10: d+=30;
case 9: d+=31;
case 8: d+=31;
case 7: d+=30;
case 6: d+=31;
case 5: d+=30;
case 4: d+=31;
case 3: d+=28;
case 2: d+=31;
case 1: d+=day;
}
if((year%4==0&&year%100!=0||year%400==0)&&month>=3)
d++;
printf("%d\n",d);
getch();
return 0;
}