欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1875|回復: 4
收起左側

這段單片機日歷計算的C語言代碼如何理解?

[復制鏈接]
ID:1020164 發表于 2022-5-24 00:35 | 顯示全部樓層 |閱讀模式
u8 const table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正數據表   
char SRTC_Get_Week(u16 year,u8 month,u8 day)   //計算星期幾
{  
u16 temp2;
  u8 yearH,yearL;
  
  yearH=year/100; yearL=year%100;
  if (yearH>19)yearL+=100;  
  temp2=yearL+yearL/4;
  temp2=temp2%7;
  temp2=temp2+day+table_week[month-1];
  if (yearL%4==0&&month<3)temp2--;
  if(temp2%7==0) return 7;
  return(temp2%7);
}  
這是日歷計算代碼。請問標紅代碼什么意思,請詳解

回復

使用道具 舉報

ID:213173 發表于 2022-5-24 06:23 | 顯示全部樓層
1.公歷閏年判定遵循的規律為:四年一閏、百年不閏、400年再閏。
2.公歷閏年的精確計算方法:普通年能被四整除且不能被100整除的為閏年。
3.世紀年能被400整除的是閏年,如2000年是閏年,1900年不是閏年。對于數值很大的年份,如果這年能整除3200并且能整除172800則是閏年。
yearH,yearL;是把年份分解為>=100和<100,以方便用char型數據計算。月分大小平潤。周就不必細說了吧。
回復

使用道具 舉報

ID:161164 發表于 2022-5-24 07:33 來自觸屏版 | 顯示全部樓層
請百度"星期的計算"
回復

使用道具 舉報

ID:505848 發表于 2022-5-24 08:38 | 顯示全部樓層
yearH=year/100; yearL=year%100;//取年份的后兩位,用于后續區分平閏年
  if (yearH>19)yearL+=100;            //2000年之后,統一加上100
  temp2=yearL+yearL/4;                 //平年,每年剩一天,每四年一個閏年,多剩一天
  temp2=temp2%7;                        //對7取余,夠7天填補一周
  temp2=temp2+day+table_week[month-1]; //多余的天+日期+月份的修正(一月說明不需要修正,二月需要修正一月31天%7后,剩下的3天)
  if (yearL%4==0&&month<3)temp2--; //補償yearL+yearL/4中,由于正好能被4整除,多+的1天
  if(temp2%7==0) return 7;  //正好出現能被7整除時,返回星期日
  return(temp2%7);   //根據多余的天數,返回計算的星期

評分

參與人數 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:844772 發表于 2022-5-24 08:39 | 顯示全部樓層
你查查用于計算星期的泰勒公式就明白了,大概是這個樣子:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表