RTC 例程中有段代码是关于星期几的计算的
[mw_shl_code=c,true]u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //
const u8 mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec)
{
u16 t;
u32 seccount=0;
if(syear<1970||syear>2099)return 1;
for(t=1970;t<syear;t++) //°ÑËùóDÄê·YμÄÃëÖóÏà¼ó
{
if(Is_Leap_Year(t))seccount+=31622400;//
else seccount+=31536000; //
}
smon-=1;
for(t=0;t<smon;t++) //
{
seccount+=(u32)mon_table[t]*86400;//
if(Is_Leap_Year(syear)&&t==1)seccount+=86400;//
}
seccount+=(u32)(sday-1)*86400;//
seccount+=(u32)hour*3600;//
seccount+=(u32)min*60; //
seccount+=sec;//
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //
PWR_BackupAccessCmd(ENABLE); //
RTC_SetCounter(seccount); //
RTC_WaitForLastTask(); //
RTC_Get();
return 0;
}[/mw_shl_code]
请问一下u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; 中的{0,3,3,6,1,4,6,2,5,0,3,5} 是怎么计算来的?
|