经典 基于51,52单片机的电子万年历设计( 五 )


阳历的算法比较简单,每十月的总的天数相对来说是固定的 。只有2月份,在闰年是29天,在非闰年是28天 。每个月的日历排法.主要是确定每个月第一天是星期几 。我们知道1901年1月1日是星期二,星期的变化是7天一个周期,比如说要计算1901年2月1日是星期几,可以这样推算:从1901年1月1日到1901年2月1日总共经过了31天(从表1可看出),31对7取模是3:i901年1月1日是星期二,加三后,是星期五 。因此1901年2月1日是星期五 。同理,可以推算出从1901—2100年任何一天是星期几 。
表1
2.阴历算法
阴历的算法比较复杂,它包含两个部分 。一部分是阳历日和阴历日的对应关系;另一部分则是阳历日和农历节气的对应关系 。下面只介绍与设计有关的阴历和阳历的关系 。
表2
我们先要做一个数据表,这个数据表里面每2个字节,表示T一个阴所年彝个月份的天教2个字节(共16bit)的具体意义如表2 。
其中“!(0/1)中“0”表示30天,“1”表示29天 。“x x x x(4个比特可表示数值范围0~15)”表示该年中是否有闰月,数值“0”表示无闰月,“ 1~12”表示某一个闰月 。闰月一般是29天;在200年中(1901~2100年),闰月是30天的,可用一个特殊语句来解决 。这里2OO年需要200 x 2=400个字节,构成阴历压缩数据表 。
有了阴历的数据表后,主要是要确定阳历日和胡历日的对应关系 。我们知道阳历年1901年1月1日,对应的阴历年是对应的阴历日,可用以下算法:
(1)从阳历年1901年1月1日到1901年2月1日,计算出经过了31天;
(2)根据阴历数据表知道阴历年1900年11月有29天,因此31—29=2天 。原来阳历年1901年1月1日对应的阴历日是11日,则有11+1=13;
(3)因为阴历1901年12月份有30天,而13


以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: