战舰RTC实验中,已知年月日,怎样求星期号???

2019-10-15 07:50发布

/**函数名   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);
}                          

网上有说,在已知年月日的情况下,通过蔡勒公式可以求得星期号。但实验例程中,好像不是。原子哥能不能解释一下上边函数的实现原理???


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。