楼上的写的没什么问题,可是你的算法中有一个失误,那就是年份为100的倍数时,要能够整除400才能是29天,所以“”“case2:day=year%4==0?29:28;”“”这一句要改为"""case2:day=year%100==0?year%400==0?29:28:year%4==0?29:28;""