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

標題: 51單片機年月日算星期精簡算法 [打印本頁]

作者: 51黑bug    時間: 2016-6-25 00:07
標題: 51單片機年月日算星期精簡算法
MCU51單片機年月日算星期精簡算法
從2000/1/1------2099/12/31測試通過。
//判斷是否是閏年,閏年2月是29天 公式:366%7=2;如真是是要計算萬年用if(((y%4==0)&&(y%100!=0))||(y%400==0))) 這是減少編譯代碼長度

MCU51年月日算星期精簡算法
#include <reg52.h>
unsigned char getweek(unsigned char,unsigned char,unsigned char);

unsigned char getweek(unsigned char year,unsigned char month,unsigned char day)
{
unsigned char week,tp;     
tp=0;week=5;                //初始化2000-01-01星期六
while(tp!=year){            //處理年(2000開始)
  week++;              //是上一年的星期的下一天 公式:365%7=1
  if(tp%4==0)week++;   //判斷是否是閏年,閏年2月是29天 公式:366%7=2
  tp++;                //下一年的1月1日
}
tp=1;
while(tp!=month){                           //處理月(1月開始)
  switch(tp){
   case 1:case 3:case 5:case 7:case 8:case 10:case 12: week=week+3;break;  //大月天數31%7
   case 2: if(year%4==0)week++;break;           //閏月天數,閏年2月是29天 公式:366%7=2 29%7
   case 4:case 6:case 9:case 11: week=week+2;break;                         //小月天數30%7
  }
  tp++;                                              //處理月
}
week=week+day;  //處理日(從1日開始)
week=week%7;
if(week==0) week=7;
return week;        //返回星期
}


在以下的電子鐘制作中,使用了這種算法:








歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1