给出年月日 计算该日是该年的第几天
C语言
#include <stdio.h>
int main()
{
int sum_day(int month,int day);
int leap(int year);
int year,month,day,days;
printf("input date(year,month,day):");
scanf("%d,%d,%d",&year,&month,&day);
printf("%d/%d/%d ",year,month,day);
days=sum_day(month,day); /* 调用函数sum_day */
if(leap(year)&&month>=3) /* 调用函数leap */
days=days+1;
printf("is the %dth day in this year.\n",days);
return 0;
}
int sum_day(int month,int day) /* 函数sum_day:计算日期 */
{
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for (i=1;i<month;i++)
day+=day_tab[i]; /* 累加所在月之前天数 */
return(day);
} /* 函数leap:判断是否为闰年 */
int leap(int year)
{
int leap;
leap=year%4==0&&year%100!=0||year%400==0;
return(leap);
}
C++ :
#include <iostream>
using namespace std;
int main()
{
int sum_day(int,int);
int leap(int year);
int year,month,day,days=0;
cout<<"input date(year,month,day):";
cin>>year>>month>>day;
cout<<year<<"/"<<month<<"/"<<day;
days=sum_day(month,day); /* 调用函数一 */
if(leap(year) && month>=3) /* 调用函数二 */
days=days+1;
cout<<" is the "<<days<<"th day in this year."<<endl;
return 0;
}
int sum_day(int month,int day) //计算日期
{
int i;
int day_tab[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for (i=0;i<month-1;i++)
day+=day_tab[i];
return(day);
}
int leap(int year) //判断是否为闰年
{
int leap;
leap=year%4==0&&year%100!=0||year%400==0;
return(leap);
}
样例输入
2017,8,4
样例输出
216