使用51單片機(jī)實(shí)現(xiàn)公歷農(nóng)歷與星期的轉(zhuǎn)換說(shuō)明
資料介紹
公歷是全世界通用的歷法,以地球繞太陽(yáng)的一周為一年,一年365天,分為12個(gè)月,1、331天,2月為28天,其余月份為30天。事實(shí)上地球繞太陽(yáng)一周共365天5小時(shí)48分46秒。比公歷一年多出5小時(shí)48分46秒,為使年誤差不累積,公歷年用閏年法來(lái)消除年誤差,由于每年多出5小時(shí)48分46秒,每4年累計(jì)多出23小時(shí)15分4秒,接近1天,天文學(xué)家就規(guī)定每4年有一個(gè)年,把2月由28天改為29天。凡是公歷年代能被4整除的那一年就是閏年。但是這樣一來(lái),每4年又少了44分56秒,為了更準(zhǔn)確地計(jì)時(shí),天文學(xué)家又規(guī)定,凡能被100整除的年份,只有能被400整除才是閏年,即每400年要減掉3個(gè)閏年,經(jīng)過(guò)這樣處理后實(shí)際上每400年的誤差只有2小時(shí)53分20秒,已相當(dāng)準(zhǔn)確了農(nóng)歷與公歷不同,農(nóng)歷把月亮繞地球一周作為一月。因?yàn)樵铝晾@地球一周不是一整天,所以農(nóng)歷把月分為大月和小月,大月30天,小月29天。通過(guò)設(shè)置大小月,使農(nóng)歷日始終與月亮與地球的位置相對(duì)應(yīng)。為了使農(nóng)歷的年份與公歷年相對(duì)應(yīng),農(nóng)歷通過(guò)設(shè)置閏月的辦法使它的平均年長(zhǎng)度與公歷年相等。農(nóng)歷是中國(guó)傳統(tǒng)文化的代表之ー,并與農(nóng)業(yè)生產(chǎn)聯(lián)系密切,中國(guó)人民特別是廣大農(nóng)民十分熟悉并喜愛(ài)農(nóng)歷公歷與農(nóng)歷是我國(guó)目前并存的兩種歷法,各有其固有的規(guī)律。農(nóng)歷與月球的運(yùn)行相對(duì)應(yīng),其影響因素多,它的大月和閏月與天體運(yùn)行有關(guān),計(jì)算十分復(fù)雜,且每年都不一致。因此要用單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,用査表法是最方便實(shí)用的辦法系列單片機(jī)因其在功能上能滿足大部份對(duì)速度要求不高的應(yīng)用場(chǎng)合的要求,且價(jià)格低廉,開(kāi)發(fā)工具普及程度高是目前應(yīng)用最多的單片機(jī)之一。本文介紹一種用51單片機(jī)實(shí)現(xiàn)從1901年到年199年公歷日到農(nóng)歷日及星期的轉(zhuǎn)換方法,并向讀者提供完整的51匯編程序
基本原理實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,一般采用査表法,按日査表是速度最快的方法,但51單片機(jī)尋址能力有限,不可能采用按日查表的方法。除按日査外,我們可以通過(guò)按月查表和按年?yáng)吮淼姆椒ǎ偻ㄟ^(guò)適當(dāng)?shù)挠?jì)算,來(lái)確定公歷日所對(duì)應(yīng)的農(nóng)歷日期。本文采用的是按年?yáng)吮矸ǎ畲笙薅鹊販p少表格所占的程序空間對(duì)于農(nóng)歷月來(lái)說(shuō),大月為30天,小月為29天,這是固定不變的,這樣我們就可用1個(gè)BIT(位)來(lái)表示大小月信息。農(nóng)歷一年,如有聞月為13個(gè)月,否則是12個(gè)月,所以一年需要用13個(gè)BIT,間月在農(nóng)歷年中所在的月份并不固定大部分閏月分布在農(nóng)歷2-8月,但也有少量年份在9月以后,所以要表示間月的信息,至少要4BIT,在這里我們用4BIT的值來(lái)表示閏月的月份,值為0表示本年沒(méi)有間月。有了以上信息,還不足以判斷公歷日對(duì)應(yīng)的農(nóng)歷日,因?yàn)檫€需要個(gè)參照日,我們選用農(nóng)歷正月初一所對(duì)應(yīng)的公歷日期作參照日,公歷日最大為31日,需要SBIT來(lái)表示,而春節(jié)所在的月份不是1月就是2月,用1BIT就夠了,考慮到表達(dá)方便,我們用2BIT來(lái)表示春節(jié)月,2BIT的值直接表示月份。這樣一年的農(nóng)歷信息只用3個(gè)字節(jié)就全部包括了計(jì)算公歷日對(duì)應(yīng)的農(nóng)歷日期的方法:先計(jì)算出公歷日離當(dāng)年元旦的天數(shù),然后查表取得當(dāng)年的春節(jié)日期,計(jì)算出春節(jié)離元旦的天數(shù),二者相減即可算出公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減一月天數(shù),調(diào)整一月農(nóng)歷月份,即可推算出公歷日所對(duì)應(yīng)的農(nóng)歷日期。如公歷日不到春節(jié)日期,農(nóng)歷年要比公歷年小一年,農(nóng)歷大小月取前年的信息。農(nóng)歷月從12月向前推算公歷日是非常有規(guī)律的,所以公歷日所對(duì)應(yīng)的星期天可以通過(guò)計(jì)算直接得到,理論上公元0年1月1日為星期日只要求得公歷日離公元0年1月1日的日子數(shù),除7后的余數(shù)就是星期天,為了簡(jiǎn)化計(jì)算,采用月校正法,根據(jù)公歷的年月日可直接計(jì)算出星期天。其算法是:日期十年份十所過(guò)閏年數(shù)十月校正數(shù)之和除7的余數(shù)就是星期天,但如果是在閏年又不到3月份,上述之和要減一天再除7。其1-12月的校正數(shù)據(jù)為在本程序中采用1個(gè)字節(jié)表示年份,閏年數(shù)也只計(jì)算1900年以后的閏年數(shù),所以實(shí)際校正數(shù)據(jù)也和上述數(shù)據(jù)不同
- DS1302的電子萬(wàn)年歷_51單片機(jī),年月日、星期、時(shí)分秒、農(nóng)歷和溫度,帶鬧鐘,全套資料
- C語(yǔ)言 | 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷星期的轉(zhuǎn)換(完整源代碼)
- 簡(jiǎn)單實(shí)現(xiàn)51單片機(jī)步進(jìn)電機(jī)的驅(qū)動(dòng)
- 51單片機(jī)的驅(qū)動(dòng)說(shuō)明 7次下載
- 使用51單片機(jī)實(shí)現(xiàn)流水燈的詳細(xì)資料說(shuō)明 21次下載
- 單片機(jī)C51編程的警告提示說(shuō)明
- 如何進(jìn)行51單片機(jī)的AD和DA轉(zhuǎn)換
- 51單片機(jī)系列命名規(guī)則資料說(shuō)明
- 51單片機(jī)教程之51單片機(jī)的串行口應(yīng)用舉例資料說(shuō)明 18次下載
- 51單片機(jī)轉(zhuǎn)換程序(51Hex_bin)下載綠色版 0次下載
- AD轉(zhuǎn)換器AD976與51單片機(jī)的接口設(shè)計(jì) 82次下載
- 基于51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷、星期的轉(zhuǎn)換 93次下載
- 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷、星期的轉(zhuǎn)換
- 一種公歷到農(nóng)歷日期轉(zhuǎn)換算法的實(shí)現(xiàn)
- 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷星期的轉(zhuǎn)換
- 什么是51單片機(jī)最小系統(tǒng) 2802次閱讀
- 詳解STM32單片機(jī)和51單片機(jī)的區(qū)別 3.8w次閱讀
- 51單片機(jī)實(shí)現(xiàn)最小系統(tǒng)的原理和電路與編程設(shè)計(jì)說(shuō)明 8867次閱讀
- 單片機(jī)的結(jié)構(gòu)和原理說(shuō)明 5517次閱讀
- 51單片機(jī)的最小系統(tǒng)應(yīng)用說(shuō)明 8207次閱讀
- 51單片機(jī)引腳簡(jiǎn)介 5.4w次閱讀
- 如何學(xué)習(xí)51單片機(jī) 5082次閱讀
- Office的公歷轉(zhuǎn)換農(nóng)歷和隔行求和及兩頁(yè)紙打印到一頁(yè)紙上的3個(gè)小技巧 4357次閱讀
- 如何使用51單片機(jī)實(shí)現(xiàn)串口通信 3w次閱讀
- 如何用51單片機(jī)實(shí)現(xiàn)IIC通信 1.6w次閱讀
- 如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 51單片機(jī)和AVR單片機(jī)有什么區(qū)別 1.3w次閱讀
- 新手學(xué)習(xí)單片機(jī)的首選:51單片機(jī) 8836次閱讀
- 單片機(jī)8x8矩陣鍵盤(pán)原理說(shuō)明 2.6w次閱讀
- 51單片機(jī)學(xué)習(xí)感悟與51單片機(jī)上拉電阻心得 4295次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論