第几天?

给定一个日期,输出这个日期是该年的第几天。

Input输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。Output对于每组输入数据,输出一行,表示该日期是该年的第几天。Sample Input

1985/1/20
2006/3/12

Sample Output

20
71

#include<stdio.h>

bool leap(int y)
{
    if(y%4==0&&y%100!=0||(y%400==0))
    return 1;
    else
    return 0;
}
int main()
{
    int year,month,day,sum;
    char ch1,ch2;
    while(scanf("%d %c %d %c %d",&year,&ch1,&month,&ch2,&day)!=EOF)
    {
        sum=0;
        for(int i=1;i<month;i++)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
            {
                sum=sum+31;
            }
            else if(i==2)
            {
                if(leap(year))
                {
                    sum=sum+29;
                }
                else 
                sum=sum+28;
            }
            else
            sum=sum+30;
        }
        sum=sum+day;
        printf("%d
",sum);
    } 
    return 0;
}
#include<stdio.h>

int main()
{
    int year,month,day,sum;
    char ch1,ch2;
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d %c %d %c %d",&year,&ch1,&month,&ch2,&day)!=EOF)
    {
        sum=0;
        for(int i=1;i<month;i++)
        {
            sum=sum+a[i];
        }
        sum=sum+day;
        if(year%4==0&&year%100!=0||(year%400==0))
        {
            if(month>2)
            {
                sum=sum+1;
            }
        }
        printf("%d
",sum);
    } 
    return 0;
}
原文地址:https://www.cnblogs.com/2228212230qq/p/7843963.html