HDU_2005——今天是今年的第几天

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

 

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 

 

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 

 

Sample Input
1985/1/20 2006/3/12
 

 

Sample Output
20 71
 1 #include <cstdio>
 2 #include <cctype>
 3 const int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 4 bool is_leapyear(int year)
 5 {
 6    if((year%4==0 && year%10!=0)||year%400==0)
 7       return true;
 8    return false;   
 9 }
10 int main()
11 {
12    char str[15];
13    while(~scanf("%s",str))
14       {
15          int a[3]={0},day=0;
16          for(int i=0,j=0;str[i];i++)
17             {
18                if(isdigit(str[i]))
19                   a[j]=a[j]*10+str[i]-'0';
20                else
21                   j++;     
22             }
23          for(int i=0;i<a[1]-1;i++)
24             day=day+days[i];
25          day=day+a[2];
26          printf("%d\n",is_leapyear(a[0])?day+1:day);    
27       }
28    return 0;
29 }

 

posted @ 2013-06-15 21:45  瓶哥  Views(186)  Comments(0Edit  收藏  举报