输入某天日期,这是第几天?

输入某天的日期,如20151226,计算这天是当年的第几天


int main()
{
    int day = 0;
     
    int y = 0;
    int m = 1;
    int d = 0;
     
    scanf("%d-%d-%d", &y, &m, &d);
     
    switch(m-1)    //    故意没有在case里加break
    {
        //case 12:
            //day += 31;
        case 11:
            day += 30;
        case 10:
            day += 31;
        case 9:
            day += 30;
        case 8:
            day += 31;
        case 7:
            day += 31;
        case 6:
            day += 30;
        case 5:
            day += 31;
        case 4:
            day += 30;
        case 3:
            day += 31;
        case 2:
            if((y % 4 == 0 && y % 100 != 0) ||y%400==0) 
            {
                day += 29;
            }
            else
            {
                day += 28;
            }
         case 1:
            day += 31;
             
         default:
             break;
      }
       
      printf("%d", day+=d);
      
     return 1;
 }

img

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int year,month,day;
    int days;
    int i;
    scanf("%d %d %d",&year,&month,&day);
        days=day;
        for(i=1; i<month; i++)
        {
            switch (i)
            {
            case 2:
                days+=((year%4==0&&year%100!=0)||year%400==0)?29:28;
                break;
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days+=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days+=30;
                break;
            }
        }
    printf("%d",days);
    return 0;
}