欢迎来到天天文库
浏览记录
ID:62483718
大小:14.93 KB
页数:8页
时间:2021-05-09
《万年历计算之干支.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、万年历计算之干支1、基本知识中国古代的一种纪年法。即以甲、乙、丙、丁、戊、己、庚、辛、壬、癸为十干,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥为十二支,把干、支顺序配合。如甲子、乙丑等,经过六十年又回到甲子。周而复始,循环不已。我国农历现仍沿用干支纪年。本文中,我将计算公历某年某月某日某时的干支称为排四柱(该名称来源于传统的命理算卦)。本文中将现行公历和格里高利历理解为同一种立法。由于干支纪年法是以60年一轮回的周期,周而复始,循环不已。所以无法用某个单纯的公式计算,只能推算(仅本人看法),既然推算就必须有个起点,本文中已公历1583年1月1日为起点(儒略日1582年10月4日为格里高利日
2、1582年10月15日)。通过查阅权威资料我们可知道,公历公历1583年1月1日的年、月、日干支为壬午年壬子月壬辰日。有了这个起点,再利用干支纪年的规律就好推算了。2、日柱的计算日柱,即日期用干支来表示。日柱的计算比较简单,说它简单是因为日柱的计算比较独立。需要注意的是,日柱的交界点为凌晨12点(普遍这么认为),此时刚好为子时(23:00-1:00),故将23:00-24:00称为初子时,意为今夜之子时,非明日之早。将24:00-1:00称为正子时,意为明日之早。业界普遍将日柱分界点定位初子时,意思就是说初子时算今天,正子时算明天。(呵呵,绕口的)首先,需要计算公历1583年1月1日至你要计算
3、干支的公历日期(当天算在内)的相隔天数(由于这个比较容易这里就不罗列出代码了)。然后,我这里给出一个我自己推导出的简单c语言公式://天干intnHeavenlyStems=(相隔天数%10+8)%10-1;//地支intnEarthlyBranches=(相隔天数%12+4)%12-1;接下来再简单修正一下:if(hour>=23
4、
5、hour==0){//已初子时为界(第二天的开始)nHeavenlyStems++;nEarthlyBranches++;}nHeavenlyStems=(nHeavenlyStems==-1)?9:nHeavenlyStems;结果为0-9,依顺序分别代
6、表甲、乙、丙、丁、戊、己、庚、辛、壬、癸十干nEarthlyBranches=(nEarthlyBranches==-1)?11:nEarthlyBranches;结果为0-11,依顺序分别代表子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥十二支注意:日柱交界点是以初子时为界3、时柱的计算时柱,即时辰用干支来表示。时柱的地支是确定的。古人将每2小时称为一个时辰,一天共12时辰,刚好对应12地支,由凌晨1点开始每两小时对应于一地支,依次为:子丑寅...以下是对照表:子丑寅卯辰己23-0101-0303-0505-0707-0909-11午未申酉戊亥11-1313-1515-1717-1919-2
7、121-23时柱的地支,这里我给出我自己推导出的简单c语言公式://地支intnEarthlyBranches=static_cast<int>(ceil(hour/2.0));nEarthlyBranches=(nEarthlyBranches==12)?0:nEarthlyBranches;结果为0-11,依顺序分别代表子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥十二支时柱的天干是不固定的,但可根据下面日上起时标推算时柱的天干(就是说时柱的天干和日干有关)日上起时表时日丁壬戊癸子庚子壬子丑辛丑癸丑寅壬寅甲寅卯癸卯乙卯甲己乙庚丙辛甲子丙子戊子乙丑丁丑己丑丙寅戊寅庚寅丁卯己卯辛卯
8、戊辰庚辰壬辰甲辰丙辰巳己巳辛巳癸巳乙巳丁巳午庚午壬午甲午丙午戊午未辛未癸未乙未丁未己未申壬申甲申丙申戊申庚申酉癸酉乙酉丁酉己酉辛酉戌甲戌丙戌戊戌庚戌壬戌亥乙亥丁亥己亥辛亥癸亥时柱的天干,这里我给出我自己根据上表推导出的简单c语言公式:首先,需要计算公历1583年1月1日至你要计算干支的公历日期(当天算在内)的相隔天数(由于这个比较容易这里就不罗列出代码了)。//天干intnHeavenlyStems=(相隔天数%10+8)%10-1);nHeavenlyStems=(nHeavenlyStems==-1)?9:nHeavenlyStems;nHeavenlyStems=((nHeavenlyS
9、tems%5)*2+nEarthlyBranches)%10;注意:时柱地支是固定的,天干与日柱天干有关。4、月柱的计算月柱,即月份用干支来表示。月柱的计算相对是最复杂的,因为月柱交界是以24节气中的节气(令)的时间为交界点的,所以要准确计算月柱首先必须有能力就算24节气的时间。(关于24节气的计算,不明白的朋友可以参考的另一篇文章万年历计算之节气)首先,根据24节气的规律推导出该月所对应的节气(
此文档下载收益归作者所有