/* Next, complete months in current year */{int8 month = tm->month;while ( --month >= 0 )//这里有没错呢?你先把一个月减了//是不是少计数了一个月{days += monthLength( IsLeapYear( tm->year ), month );}}/* Next, complete years before current year */{uint16 year = tm->year;while ( --year >= BEGYEAR ){days += YearLength( year );}}
问题是在这里将时间数据由 UTCTimeStruct转换为UTCtime时间对月份和年循环条件。比如–year>=BEGYEAR是不是上算了一年。
Scienve Xie:
TI的固件里,月份是从0开始计算的。需要小小修改一下。函数的注释有。
CQ JiMi:
回复 Scienve Xie:
我知道,从一月到十二月存储是从0~11。但是你一进去循环条件就把月份先减了一不是少算了一个月?