/**函数名 RTC_Get_Week()
*功能 输入公历日期得到星期(只允许1901-2099年)
*参数 公历年月日
*返回值 星期号
0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
*/
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;
temp2=temp2+day+table_week[month-1];
if (yearL%4==0&&month<3)temp2--;
return(temp2%7);
}
网上有说,在已知年月日的情况下,通过蔡勒公式可以求得星期号。但实验例程中,好像不是。原子哥能不能解释一下上边函数的实现原理???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
恩恩,我就是好奇战舰的例程中,给出的是什么方法,硬是没看明白
谢谢,你对上边的程序有研究吗?
不明白,我确定星期的办法是 已知初始的设定日期了,比如1970年1月1日。把1970年1.1到今天的总天数算出来,每周7天,把总天数除以7取余。余数为0~6,对应的星期为周4、周5、周6、周天、周一、周二、周三~~~
这样确定的。。循环的天数直接全部去掉就行了~~
因为1970.1.1是周四~~~
一周热门 更多>