干支纪年和纪日算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
干支纪年和纪日算法干支纪年和纪日算法

干支纪年和纪日算法(怎样从已知年份和日期得到对应的干支纪年和纪日) 摘要: 从已知年份计算干支纪年很简单:年份数减3,除以10的余数是天干,除以12的余数是地支。 从已知日期计算干支纪日的公式和蔡勒公式很相像,如下: g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3 z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇数月i=0,偶数月i=6) 其中C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月按上一年的13月和14月来算。g除以10的余数是天干,z除以10的余数是地支。 巧妙运用和干支有关的几个计算公式,还可以在没有万年历的情况下推算出古书里的干支纪日对应的公历日期。 ------------------------------------------------------------------------------   干支纪日,从夏朝就开始使用了。根据对中国古代历史典籍《春秋》中记载的日食的研究,我国的干支纪日,从鲁隐公三年二月己巳日(公元前720年2月10日)开始,一直到今天,都未曾间断。干支纪年的出现则略晚一些,直到东汉元和二年(公元85年)政府才下令在全国实行,至今也未曾间断。因此,凡是需要接触中国历史的人,总不免要遇到查某一年的干支或某一日的干支,以及由年干支和日干支推算是哪一年或哪一日的问题。通常,这类转换靠查历书都可以解决。但既然干支也是一个循环系统,自然也就有从年份和日期求干支的公式。   在介绍求年干支和日干支的公式前,先把干支的特点介绍一下。干支是天干和地支的组合。天干有十个,即甲、乙、丙、丁、戊、己、庚、辛、壬、癸;地支有十二个,即子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥。天干和地支从“甲子”开始,按顺序逐一相配,各用到最后一个时,再从第一个开始继续相配,就形成了六十个干支,也称“六十花甲子”。为什么是六十个干支呢?这个从数学上很容易回答。根据干支的构成条件,其循环周期必然是天干数和地干数的最小公倍数。而60正是10和12的最小公倍数。   如果我们把“甲子”编为1号,“乙丑”编为2号,这样编下去,就可以得到一个干支和序号的对照表,如下: 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.壬戌? 60.癸亥   细心观察这张表,不难发现,由序号得到对应干支是很容易的,序号除以10的余数就是天干的序数(如果余数是0,则为最后一个天干癸),序号除以12的余数就是地支的序数(如果余数是0,则为最后一个地支亥)。比如37号干支,因为37 mod 10=7(mod表示取余数),对应的天干是庚,37 mod 12=1,对应的地支是子,所以37号干支就是庚子。显然,一个整数除以10的余数就是它的个位数,这就使求天干更方便了。   而由干支推它的序号,也不困难。这其实就是一个同余方程组的求解问题,我们用初等数论中的中国剩余定理就可以解决。比如要算戊午的序号是多少,根据上面由序号得到对应干支的原理,很容易得到如下方程组: { x mod 10 = 5 { x mod 12 = 7. 其中x是待求的干支序号。根据中国剩余定理,有: x 6 * 5 - 5 * 7 (mod 60) = 55, 即戊午的序号是55.这和上面的对照表的是一致的。一般地,若天干的序号为m,地支的序号为n,则干支的序号为: x 6m - 5n (mod 60)????????????????????????????????????????????????????? (1) 简单点说,如果6m-5n的结果是正数,这个数就是干支的序号;如果是负数,把它加上60就是干支的序号。   了解了干支及其序号的相互推算,下面我们先来介绍年

文档评论(0)

yyanrlund + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档