RTC-获取星期几的代码由来跟理解

2019-08-12 17:57发布

先来看看 原子的代码   1.png
看得我一头雾水  没办法度娘咯 。发现原子的代码是基于 基姆拉尔森计算公式 修改而来。
3.png
这是基于JAVA的代码实现。
2.png
找到源头还是看不明白,哈哈
接下来才是找到了一篇文章 ,文章太长,我就贴标题 各位百度吧   
推导基姆拉尔森公式根据日期计算星期接下来说说我对原子代码的理解  
u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正数据表          
u8 RTC_Get_Week(u16 year,u8 month,u8 day)
{       
        u16 temp2;
        u8 yearH,yearL;
       
        yearH=year/100;        yearL=year%100;                
        // 如果为21世纪,年份数加100  
        if (yearH>19)yearL+=100;
        // 获取1900年之后的年数
        temp2=yearL+yearL/4;
        //获取这些年中的闰年数值
        temp2=temp2%7;
        //获取year一月的星期表
        temp2=temp2+day+table_week[month-1];
        //加上日期加上月修正数据表
        if (yearL%4==0&&month<3)temp2--;
        //如果year是闰年 -1
        return(temp2%7);
}               



不知道我的理解对不对,还需原子哥指教。
0条回答

一周热门 更多>