


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c+中怎样将阳历转化成农历已关闭20标签:c+,阳历,农历小鱼、2011-05-03 11:06推荐答案一、原理篇1公历转换农历的算法公历(GregorianCalendar)与农历(ChineseLunarCalendar)的转换关系不是一个简单的公式就可以完成,其中的转换比较复杂,原因是农历的制定相当复杂,是根据天文观测进行指定的。比较常用并且比较简单的公历转换农历算法就是查表方法。首先要保存公历农历的转换信息:以任何一年作为起点,把从这一年起若干年的农历信息保存起来(在我的C+类中,是从1900年作为起点的。选择一个起始点的思想十分重要,在下面的干支纪法和二十四节气中也体现到了)。回想一下,我们平时是怎样来转换公历农历的呢?是查阅历书,历书中有每一天的公历农历,直接一查就可以了。那么我们可不可以也这样做呢?当然可以,但是这样做要收录每一天的信息,工作量就会很大,所以我们要简化这些信息。如何简化呢?要保存一年的信息,其实只要两个信息就可以了:(1)农历每个月的大小;(2)今年是否有闰月,闰几月以及闰月的大小。用一个整数来保存这些信息就足够了。具体的方法是:用一位来表示一个月的大小,大月记为1,小月记为0,这样就用掉了12位,再用低四位来表示闰月的月份,没有闰月记为0。比如说,2000年的信息数据是0x0c960,转化成二进制就是1100100101100000,表示的含义是1、2、5、8、10、11月大,其余月小,低四位为0说明没有闰月。2001年的农历信息数据是0x0d954,其中的4表示该年闰4月,月份大小信息就是0x0d95,具体的就是1、2、4、5、8、10、12月大,其余月小。这样就可以用一个数组来保存这些信息。在我的C+类中是用m_lunarInfo这个数组来保存这些信息的。下面就是公历转换成农历的具体算法:(1)计算所求时间到起始年正月初一的天数。(2)从起始年份开始,减去每一月的天数,一直到剩余天数没有下一个月多为止。此时,m_lunarInfo的下标到了多少,就是减去了多少年,用起始年份加上这个下标就可以得到农历年份,然后看减去了几个月。如果本年不闰月或者闰月还在后面,就可以直接得到农历月份,如果在闰月月份数后面一个月,则这个月就是闰月。剩余的天数就是农历日。(具体实现时有所改进。)2利于泰勒公式巧算星期在应用数学中有一个计算某一天是星期几的公式,这就是泰勒公式。公式如下:w=c4-2c+y+y4+26(m+1)10+d-1,其中w就是所求日期的星期数。如果求得的数大于(小于)7,就减去(加上)7的倍数,直到余数小于7为止。式子中c是指公元年份的前两位数字,y是后两位数字,m是月数,d是日数。方括弧表示对于括号中的数字取整。还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为上一年的13月或14月,也就是公式中m的取值范围是从3到14而不是从1到12。3干支纪法天干有十个,就是甲、乙、丙、丁、戊、己、庚、辛、壬、癸,地支有十二个,依次是子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。古人把它们按照一定的顺序而不重复地搭配起来,从甲子到癸亥共六十对,叫做六十甲子。我国古人用这六十对干支来表示年、月、日、时的序号,周而复始,不断循环,这就是干支纪法。0甲子1乙丑2丙寅3丁卯4戊辰5己已6庚午7辛未8壬申9癸酉10甲戌11乙亥12丙子13丁丑14戊寅15己卯16庚辰17辛已18壬午19癸未20甲申21乙酉22丙戌23丁亥24戊子25己丑26庚寅27辛卯28壬辰29癸已30甲午31乙未32丙申33丁酉34戊戌35已亥36庚子37辛丑38壬寅39癸卯40甲辰41乙已42丙午43丁未44戊申45己酉46庚戌47辛亥48壬子49癸丑50甲寅51乙卯52丙辰53丁已54戊午55己未56庚申57辛酉58壬戌59癸亥得到年、月、日的干支表示原理是相同的,即所求的年、月、日到起始年、月、日所经历的年数、月数、天数,加上起始年、月、日干支表示在上表中的序号,与10取模得到天干的序号,与12取模得到地支的序号。以年为例,1900年立春后为庚子年,查上表可知,庚子年为六十甲子的第36位,所以所求年份m_year到1900年的年数为m_year-1900+36-1(如果月份m_month小于等于2月)或m_year-1900+36(如果月份m_month大于2月)。同理,可以得到月、日的干支表示。最后,还要依据节气(立春)调整二月份的干支纪年;依据每月的第一个节气的日期调整月的干支表示,具体情况源程序中有详细的说明。古人根据太阳升起的时间,将一昼夜区分为十二个时辰,用十二地支为代号。如果用m_hour表示公历现在的小时数(二十四表示法),则(m_hour+1)/2就得到时间的地支表示(其实是地支的序号)。4二十四节气节气就实质而言是属于阳历范畴,从天文学意义来讲,二十四节气是根据地球绕太阳运行的轨道(黄道)360度,以春分点为0点,分为二十四等分点,两等分点相隔15度,每个等分点设有专名,含有气候变化、物候特点、农作物生长情况等意义。二十四节气即立春、雨水、惊蜇、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至、小寒、大寒。以上依次顺属,逢单的均为节气,通常简称为节,逢双的则为中气,简称为气,合称为节气。现在一般统称为二十四节气。自古节气的推算是由一年平分24等分所得的平节气。旧历用平气法推算二十四气,此法将一回归年均分成二十四等分,从冬至开始等间隔地依次相间安排各个节气及中气,而各气之间太阳所运行的度数因此并不相等。新历推算则用定气法,此法将黄道上的周天度数等分成二十四份,太阳移至某一分点时,即定为某一节气的日期,由于太阳的视运动迟速不均,因此各节气间相隔的时间亦不等。但不论新历或旧历,均取冬至为二十四气之首,故在春、秋分时彼此的差别最大。为何中国传统历家早知推算定气,却又习用平气注历?此主要或由于平气易于计算所致,因在此法之下,各节气与节气间或中气与中气间相隔固定为三十日五时辰又二刻。本C+类中实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国单片陶瓷行业市场分析及投资价值评估前景预测报告
- 2025年中国不锈钢六角形棒行业市场分析及投资价值评估前景预测报告
- 2025河南洛阳师范学院招聘7人模拟试卷有答案详解
- 2025年浙江省生态环境厅部分直属事业单位招聘7人(第二批)模拟试卷及完整答案详解
- 2025年延安东辰中学教师招聘考前自测高频考点模拟试题及答案详解(网校专用)
- 2025辽宁省营口市鲅鱼圈区校园招聘教师24人(辽宁师范大学专场)考前自测高频考点模拟试题有答案详解
- 2025年合肥长丰县乡村振兴投资集团有限公司招聘7人考前自测高频考点模拟试题参考答案详解
- 2025湖南张家界市桑植县农业农村局所属事业单位公开选调工作4人模拟试卷及参考答案详解一套
- 2025广西玉林市福绵区石和镇人民政府招聘代理服务记账中心编外人员2人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025年注册电气工程师考试(发输变电专业知识)模拟试题及答案
- 2025版静脉输液治疗实践指南
- 骨科术后并发肺栓塞护理
- 2025年融媒体中心招聘考试笔试试题(60题)含答案
- 社区工作者网格员考试题库及答案
- 快乐主义伦理学课件
- 运筹学:原理、工具及应用肖勇波习题答案(可编辑)
- 医废处置人员院感培训
- 长期留置导尿的并发症及管理
- 投资者关系管理与投资者策略
- 民国时期农村管理制度
- 2025年医药流通行业运行统计分析报告
评论
0/150
提交评论