//百度之星:百度时间. //http://acm.nankai.edu.cn/p1743.html #include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; int monthMap[] = {31,28,31,30,31,30,31,31,30,31,30,31}; char chTime[1000]; int iYear = 0; int iMonth = 0; int iDay = 0; bool IsLeapYear(int year) { if(year%400 == 0 || (year%4 == 0 && year%100 != 0)) return true; return false; } bool IsTimeCorrect() { int iLength = strlen(chTime); int i = 0; if(iLength != 10) return false; else { bool bFlag = true; if(chTime[4] == '-' && chTime[7] == '-') { for(i=0;i<=9;i++) if(i!=4 && i!=7 && (chTime[i]>'9' || chTime[i]<'0') ) bFlag = false; //get the year for(i=0;i<=3;i++) iYear = iYear*10 + chTime[i] - '0'; //get the month for(i=5;i<=6;i++) iMonth = iMonth*10 + chTime[i] - '0'; //get the day for(i=8;i<=9;i++) iDay = iDay*10 + chTime[i] - '0'; } else if(chTime[2] == '/' && chTime[5] == '/') { for(i=0;i<=9;i++) if(i!=2 && i!=5 && (chTime[i]>'9' || chTime[i]<'0') ) bFlag = false; //get the year for(i=0;i<=1;i++) iMonth = iMonth*10 + chTime[i] - '0'; //get the month for(i=3;i<=4;i++) iDay = iDay*10 + chTime[i] - '0'; //get the day for(i=6;i<=9;i++) iYear = iYear*10 + chTime[i] - '0'; } else bFlag = false; if(iYear < 2000 || (iYear == 2000 && iMonth ==0) || (iYear == 2000 && iMonth == 1 && iDay ==0) ) //时间小于2000-01-01 bFlag = false; if(iMonth > 12 || iDay > monthMap[iMonth-1] ) bFlag = false; return bFlag; } } int calculate() { int iCount = 0; int i = 0; for(i=2000; i<iYear; i++) if(IsLeapYear(i)) iCount += 366; else iCount += 365; for(i=1;i<iMonth;i++) iCount += monthMap[i-1]; for(i=1;i<iDay;i++) iCount += 1; return iCount; } void inputData() { while(scanf("%s",chTime) != EOF) { if(IsTimeCorrect()) cout<<calculate()<<endl; else cout<<"Error"<<endl; memset(chTime,0,sizeof(chTime)); iYear = 0; iMonth = 0; iDay = 0; } } int main() { inputData(); return 0; }