//拼凑思想 多的少的由第一年和最后一年补回 //注意:月>2月,第一年是闰年,减一天;18年是闰年,加一天 #include<iostream> #include<cstring> #include<cstdio> #include<string> #include<cmath> #include<algorithm> using namespace std; bool isleapyear(int y){ if(y%400==0||(y%100!=0&&y%4==0)){ return true; } return false; } int main() { int t; string s; cin>>t; int sum; while(t--){ cin>>s; int y=(s[0]-'0')*1000+(s[1]-'0')*100+(s[2]-'0')*10+s[3]-'0'; int m=(s[5]-'0')*10+s[6]-'0'; int d=(s[8]-'0')*10+s[9]-'0'; if(m==2&&d==29){ cout<<-1<<endl; } else{ int i=0; sum=0; for(;i<18;i++){ if(isleapyear(y)){ sum+=366; } else{ sum+=365; } y++; } if(isleapyear(y-18)&&m>2){ sum--; } else{ if(isleapyear(y)&&m>2){ sum++; } } cout<<sum<<endl; } } return 0; }