Problem Description
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
代码实现:
1 #include<stdio.h> 2 int main() 3 { 4 int y,m,d,i,t; 5 int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 6 while(scanf("%d/%d/%d",&y,&m,&d)!=EOF) 7 { 8 t=0; 9 if(y%4==0&&y%100!=0||y%400==0) 10 a[2]=29; 11 else 12 a[2]=28; 13 for(i=0;i<m;i++) 14 t+=a[i]; 15 t+=d; 16 printf("%d ",t); 17 } 18 return 0; 19 }
1.闰年的算法:①能被4整除,但不能被100整除(例如2004是闰年,1900不是闰年);
②能被400整除(例如2000是闰年);
2.用数组来放置不规则的月份天数;
3.scanf()中的输入格式有所要求。