久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3389|回復: 0
收起左側

51單片機年月日算星期精簡算法

[復制鏈接]
ID:127902 發表于 2016-6-25 00:07 | 顯示全部樓層 |閱讀模式
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;        //返回星期
}


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



評分

參與人數 1黑幣 +5 收起 理由
我在火星吃土豆 + 5 贊一個!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产乱码精品一区二区三区五月婷 | 三级免费 | 欧洲一区二区视频 | 日本亚洲欧美 | 欧美乱大交xxxxx另类电影 | 国产高清性xxxxxxxx | 国产三区在线观看视频 | 国产三区在线观看视频 | 亚洲国产成人精品女人久久久 | 亚洲日韩中文字幕一区 | 在线视频 亚洲 | 三级视频在线观看 | 精品欧美一区二区精品久久久 | 一区二区三区国产精品 | 亚洲一区二区三区在线视频 | 国产一区在线免费观看视频 | 日本成人中文字幕 | 日韩成人在线观看 | 欧美激情黄色 | 久久一二区 | 午夜久久久久久久久久一区二区 | 日韩精品在线免费观看视频 | 欧美区在线 | 91精品国产91久久久久游泳池 | 欧美片网站免费 | 欧美视频精品 | 国产视频观看 | 国产免费一区二区 | 久久精品综合 | 欧美亚洲国语精品一区二区 | 亚洲色欧美另类 | 日本不卡免费新一二三区 | 一区二区在线看 | 午夜激情在线 | 操久久 | 中文字幕高清视频 | 日韩中文字幕 | 找个黄色片 | 真人女人一级毛片免费播放 | 黄a大片 | 人人九九精|