原题描述:
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY-MM-DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
2000-01-01
Sample Output
1
自己写的程序有点乱:#include<iostream> using namespace std; int main() { int date,year,month,tian,day1,day2,day; cin>>year>>month>>tian; if(year%4==0&&year%100!=0||year%400==0) { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { day1=31; if(month==4||month==6||month==9||month==11) day2=30; else day=29; } if(month==1) date=tian; if(month==2) date=tian+day1; if(month==3) date=tian+29+day1; if(month==4) date=tian+29+day1*2; if(month==5) date=tian+29+day1*2+day2; if(month==6) date=tian+29+day1*3+day2; if(month==7) date=tian+29+day1*3+day2*2; if(month==8) date=tian+29+day1*4+day2*2; if(month==9) date=tian+29+day1*4+day2*3; if(month==10) date=tian+29+day1*5+day2*3; if(month==11) date=tian+29+day1*6+day2*3; if(month==12) date=tian+29+day1*6+day2*4; cout<<date; } else { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) day1=31; else if(month==4||month==6||month==9||month==11) day2=30; else day=28; if(month==1) date=tian; if(month==2) date=tian+day1; if(month==3) date=tian+28+day1; if(month==4) date=tian+28+day1*2; if(month==5) date=tian+28+day1*2+day2; if(month==6) date=tian+28+day1*3+day2; if(month==7) date=tian+28+day1*3+day2*2; if(month==8) date=tian+28+day1*4+day2*2; if(month==9) date=tian+28+day1*4+day2*3; if(month==10) date=tian+28+day1*5+day2*3; if(month==11) date=tian+28+day1*6+day2*3; if(month==12) date=tian+28+day1*6+day2*4; cout<<date; } return 0; }