错误在于 如果是闰年,但是月份没过三月,比如是1月X日,那么不应该sum++if(y%400==0||(y%4==0&&(y%100)!=0)) sum++;改成if(y%400==0||(y%4==0&&(y%100)!=0))if (m>=3) sum++;应该就可以了