计算该日是该年的第几天

/*

 Date: 07/03/19 21:10

 Description: 主要是闰年的判断和2月份的天数的处理

*/

#include<stdio.h>

int sumday(int month,int day);

int leap(int year);

int main(void)
{
   int day,month,year,days;
   printf("Please input date: ");
   printf("year-month-day ");
   scanf("%d-%d-%d",&year,&month,&day);
   days=sumday(month,day);
   if(leap(year)&&month>=3)//是闰年,且超过三月
      days=days+1;
  printf("%d-%d-%d is the %dth day in this year. ",year,month,day,days);
   return 0;
}
int leap(int year)
{
   int leap=0;
   if(year%4==0&&year/100!=0||year%400==0)
      leap=1;//是闰年返回1
   return leap;
}
int sumday(int month,int day)
{
   int day_table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
   for(int i=1;i<month;i++)
      day+=day_table[i];
   return day;
}

运行结果:

计算该日是该年的第几天