temp1=0;
while(temp>=28)//超过了一个月
{
if(Is_Leap_Year(timer.w_year)&&temp1==1) //当年是不是闰年/2月份
{
if(temp>=29)temp-=29;//闰年的秒钟数
else break;
}
else
{
if(temp>=mon_table[temp1])
mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
temp-=mon_table[temp1];//平年
else break;
}
temp1++;
原子哥,RTC中有这样一段程序,假设某一年是闰年,当temp1>1的时候,假设当年是闰年,则 if(Is_Leap_Year(timer.w_year)&&temp1==1)不永远都是真,于是每个月都只有29天了。不知道我的逻辑对不对?我觉得while里面可以这样改:
if(temp1==1)
{
if(Is_Leap_Year(timer.w_year))
temp-=29;//闰年的秒钟数
else
temp-=28;
}
else
{
if(temp>=mon_table[temp1])
// mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
temp-=mon_table[temp1];//平年
else break;
}
temp1++;
|