//判断这个月一号距离1900年1月1日有多少天 int juli(int year, int month) { int num = 0; int n = year - 1900; int i; for(i = 1; i <= n; i++) { num += tianshu(1900 + i); } switch(month) { case 1: break; case 2: num += 31; break; case 3: num += 59; break; case 4: num += 90; break; case 5: num += 120; break; case 6: num += 151; break; case 7: num += 181; break; case 8: num += 212; break; case 9: num += 243; break; case 10: num += 273; break; case 11: num += 304; break; case 12: num += 334; break; default: break; } if(runnian(year) && (month > 2)) return num + 1; else return num; }
int main(){ int n; scanf("%d",&n); while(n--){ int y, m, d; scanf("%d-%d-%d", &y, &m, &d); //闰年的2月29无18岁生日 if(runnian(y) && m==2 && d==29){ printf("-1\n"); continue; } //总天数 int res=0; if(m < 3){ if(runnian(y)==1) res+=1; }else{ if(runnian(y+18)==1) res+=1; } //首尾年 res+=365; y++; for(int i=0; i<17; i++, y++){ res+=365; if(runnian(y)==1) res+=1; } printf("%d\n", res); } return 0; }
//判断一年有多少天 int tianshu(int year) { int day; if(runnian(year)) { day = 366; } else { day = 365; } return day; }