给出年月日,计算该日是该年的第几天

#include<stdio.h>
#include<math.h>
#include<string.h>


int run(int y,int m,int d)
{
  int year=0;
  if((y%400==0)||((y%4==0)&&(y%100==0))) year=1;
  int n=0;
  if(year==1)
  {
  switch(m)
  {
      case 1: n=0;break;
      case 2: n=31;break;
      case 3: n=31+28;break;
      case 4: n=31+28+31;break;
      case 5: n=31+28+31+30;break;
      case 6: n=31+28+31+30+31;break;
      case 7: n=31+28+31+30+31+30;break;
      case 8: n=31+28+31+30+31+30+31;break;
      case 9: n=31+28+31+30+31+30+31+31;break;
      case 10: n=31+28+31+30+31+30+31+31+30;break;
      case 11: n=31+28+31+30+31+30+31+31+30+31;break;
      case 12: n=31+28+31+30+31+30+31+31+30+31+30;break;
  }
  n=n+d;
  }
  else
  {
     switch(m)
  {
      case 1: n=0;break;
      case 2: n=31;break;
      case 3: n=31+29;break;
      case 4: n=31+29+31;break;
      case 5: n=31+29+31+30;break;
      case 6: n=31+29+31+30+31;break;
      case 7: n=31+29+31+30+31+30;break;
      case 8: n=31+29+31+30+31+30+31;break;
      case 9: n=31+29+31+30+31+30+31+31;break;
      case 10: n=31+29+31+30+31+30+31+31+30;break;
      case 11: n=31+29+31+30+31+30+31+31+30+31;break;
      case 12: n=31+29+31+30+31+30+31+31+30+31+30;break;
  }
  n=n+d;
  }
  return n;
}
int main()
{
    int y,m,d;
    scanf("%d%d%d",&y,&m,&d);
    printf("%d",run(y,m,d));
    printf("\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39350434/article/details/80795114
今日推荐