云文档网 - 专业文章范例文档资料分享平台

阴历算法CnCalendar

来源:网络收集 时间:2024-04-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

手册,免费。

CnCalendar 历法说明 

Revision 1.0.1.1 

作者:刘啸 2006.01.05 

更新: 2006.09.22 

一、CnCalendar 介绍 

CnCalendar 旨在为国内外程序员尤其是 Delphi/C++Builder 程序员提供一开放源码的历 法计算工具包,此包涵盖了公历农历节气干支生肖星座数九三伏出梅入梅日出日落等各个方面,虽 然力求做到完整精确,但历法本身的复杂性和天文现象的不确定性决定了这里的计算不会太完善。 为了给用户一个完整的使用说明以及使用户在发现问题时能通过阅读 CnCalendar 的代码解决问 题,这里将 CnCalendar 的历法算法说明整理如下文。

二、CnCalendar 算法说明

本节对 CnCalendar 所使用的算法进行了详细说明,欢迎阅读并指出谬误之处。 

1、 概念与常识介绍

进行历法计算前,有一些概念是需要首先明确的,包括历法本身的概念、部分天文名词、公历 年、月、日、时的定义等,CnCalendar 算法中所涉及的概念都会在本节中加以说明。值得一提的 是,部分概念是属于天文现象、部分则是历法推演而来,一般根据前者修正后者。前后两者拟合的 精确度,是评判历法准确与否的依据。 

1)阳历、阴历、阴阳历

太阳和月亮是对人类生产活动影响最大的两个天体,因此历法基本上都是以日和(或)月的运 行规矩为依据来计算的,纯粹以太阳的运行规律来计算的历法称为阳历,纯粹以月亮来计算的则称 为阴历,两者兼而有之的自然就是阴阳历了。公历是典型的阳历,回历是阴历(本文未涉及),中国 的农历则是阴阳历。 

2)历理的依据

历法的作用有两个,一是能精确计时(或者说是计日),二是要符合实际情况。这个实际情况包 括很多内容,如季节更替、农耕活动、潮汐涨落等。实际情况造就了历法,历法反过来又应当能根 据其规则去推演实际情况,这便是历法的最终目的。目前通用的公历是 1582 年制定的格里高利历 (Gregorian),它在前身儒略历(Julian)的一年 365 日、四年一闰的基础上增加了百年不闰、 四百年又闰的规矩,形成了现在的通用公历历法。格里高利历是以数值计算为历理依据的,换句话

手册,免费。

说,按照格里高利历的数值计算规则,可以往前后推任意多的天数而计算出当时的公元年月日来, 至于是否符合实际情况,则只有到时候瞧着办了。像格里高利历的前身儒略历就出现过硬算下去误 差积累导致春分日提前 10 天的事故,不过令人放心的是,太阳与地球的相对活动情况比较稳定, 儒略历只是拟合得不甚精确,而修改后的格里高利历的精确度提高了许多,至少能支持三千年(如 果加上四千年又不闰的规则则可以撑几万年了)。这也说明,只要历法所根据的天文情况比较固定, 历法就可能推演成简单数值计算的公式。公历正是如此。

中国的农历计月所依据的是月亮的运行规则,月亮的不稳定度比太阳高得多,而农历是天文历 法,其原则规定了以实际情况为准、数值计算为辅,所以导致了中国历史上的多次修历,更导致了 目前农历计算和公农历转换的复杂性。而且农历这个阴阳历还必须考虑到太阳周期(回归年)和月 亮周期(阴历月)的配合,更产生了十九年七闰的规则,而闰月的确定还需要以节气为准,大大增 加了计算的复杂度。后文会详细说明。 

3)春分点,回归年,阴历年

地球是斜着绕太阳转的,所以赤道面和黄道面有个固定的夹角,这个夹角在地球公转过程中导 致了太阳直射点在南北回归线间移动,因此造就了四季更替、形成了年的概念。注意年的概念比发 现地球绕太阳转要久远得多,年对古人的直观感受就是四季更替和春种秋收,这个感受和地球是否 公转是无关的。假想如果地球光自转不公转而太阳在垂直于黄道面的方向上来回移动,同样也能造 就年的感受。——说明这点的目的是为了区分下面所描述的概念:恒星年和回归年。

地球精确绕太阳转一周的时间称之为恒星年,而四季更替的精确时间称之为回归年。那么怎样 衡量四季更替的精确时间?这就要用到春分点的概念。春分点是天文概念,它是黄道面上的地球公 转轨道和赤道面的两交点之一(另一个自然是秋分点了),春分秋分点时太阳正好直射赤道,而太阳 的直射又正好符合四季更替的感受要求,因此回归年的定义就是地球从这个春分点转一圈又回到春 分点的时间。

如果春分点不动,恒星年就等于回归年,因为地球转一圈又回来了。遗憾的是地轴总会像陀螺 一样有进动和章动,所以导致的岁差会让春分点在一年中稍微前进一点点,因此一恒星年比一回归 年要长那么一点点,一个是 365.25636 日,一个是 365.2422 日。记住,回归年才是我们通常 概念中的年。

也许有人要问, 恒星年和回归年有 20 多分钟的差距, 长此累积下去会有什么影响?答案是 “和 历法无关” 。历法中本来就不管地球在公转轨道上的位置,春分点秋分点的平分——冬至点和夏至点 也和公转轨道上的近日点远日点没什么必然关系,所以关心恒星年和回归年的差距是天文学家的事 情。太阳历的基础就是回归年。

至于阴历年,则没有什么天文意义,只是月的集合而已,不过在农历这个阴阳历中,它也得拟 合回归年的长度。一农历年是从正月初一到次年正月初一前的时间,它可能包含 12 或 13 个月, 取决于闰年的设定。

农历中还有“岁”的概念,是从冬至日到次年冬至日之间的时间,等于一回归年。这个概念用 来计算闰月。

手册,免费。

4)阳历月,农历月,月朔

阳历月同样没有什么天文现象和它对应,设置阳历月只是为了便于把年分割计时,所以儒略历 时能随便将月份的日期调大调小,只要保持一年的天数不变就行。像七八月连大、二月特小等都是 历史上遗留下来的问题。

农历月则不同,农历的月是阴历月,反映了月相的变化,也就是月球绕地球公转一周的周期。 农历规定了月朔时的那日为农历月首初一,下个月朔时为下个月月首初一。由于月球的公转周期差 不多是 29.5 天但月必须是天的整数倍,因此农历月有大有小,大月 30 天,小月 29 天,而且 也间隔得无规律可循,也就是说没法在不参考月相又脱离年份的情况下直接算出某个农历月的大小 来,这一点和公历是不同的。

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典公务员考试阴历算法CnCalendar在线全文阅读。

阴历算法CnCalendar.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/wenku/1249531.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219