给定一个日期,输出这个日期是该年的第几天。
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; }