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 using namespace std; 3 4 int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 5 int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; 6 7 bool judge(int year) 8 { 9 if(year%4==0&&year%100!=0||year%400==0) 10 return true; 11 return false; 12 } 13 14 int main() 15 { 16 int i; 17 int year,month,day,count; 18 while(scanf("%d/%d/%d",&year,&month,&day)!=EOF) 19 { 20 count=0; 21 bool flag=judge(year); 22 if(flag) 23 { 24 for(i=1;i<month;i++) 25 count+=b[i]; 26 count+=day; 27 } 28 else 29 { 30 for(i=1;i<month;i++) 31 count+=a[i]; 32 count+=day; 33 } 34 printf("%d\n",count); 35 } 36 return 0; 37 }