OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2009|回复: 0

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

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2017-9-11
在线时间
7 小时
发表于 2017-10-20 14:00:12 | 显示全部楼层 |阅读模式
先来看看 原子的代码   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);
}               



不知道我的理解对不对,还需原子哥指教。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 22:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表