本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62
代码
#include <stdio.h>
int isprime(int year);
int calusday(int year,int month,int day);
int main()
{
char date[11];
int i,year,month,day;
//printf("%d",isprime(1999)); //测试闰年函数 √
//printf("%d",isprime(2004)); //测试闰年函数 √
//printf("%d\n",calusday(2004,3,1)); //测试天数计算函数 √
//printf("%d\n",calusday(1999,3,1)); //测试天数计算函数 √
scanf("%d/%d/%d",&year,&month,&day);
printf("%d",calusday(year,month,day));
return 0;
}
int isprime(int year)
{
int ret=0;
if((year%4==0&&year%100)||year%400==0)
ret=1;
return ret;
}
int calusday(int year,int month,int day)
{
int i,digitday=0,monthend[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(month>=2&&isprime(year))
monthend[2]=29;
for(i=0;i<month;i++)
{
digitday=digitday+monthend[i];
}
digitday+=day;
return digitday;
}