1. 求星期公式
星期=[5+A(实际天数)] mod 7
2. 干支计算公式
六十甲子干支序号,从1->59->0。
六十甲子干支序号=[23+A(实际天数)] mod 60
3. 二十八宿计算公式
二十八宿序号=[23+A(实际天数)] mod 28
4. 实际天数A的计算
A=B(基本天数)+C(闰日天数)
B=(计算年-1)*365+(要计算到年的月日天数)
例:1984年2月1日的基本天数B=(1984-1)*365+(31+1)=723827(天),
其中,31是1月为31天,1为2月1日为1天。
公元308年8月28日的基本天数
B=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天)
这里的(要计算到年的月日天数),用的是公历,月日天数的规则我好
象小学就学过了。哈哈……
C=(计算年-1) div 4 -误差修正值 + fixValue2
fixValue2为0或者1。常值为0,当年数为闰年(公历闰年法)之中的3月
1日之后的为1。
误差修正值推算:
公元元年1月1日至1582年10月14日为0。
1582年10月15日至1699年12月31日为10。
从1701年1月1日起每增加一个世纪累加1,但能被400除尽的世纪不累
加1。此方法推算即可。
--有一个问题,1700年这一年的修正值应为多少呢?算法中正好没有
讲到,但看来应该是10。
例1701年1月1日起误差值为11,而1801年1月1日起误差修正值为12,
而1901年1月1日起误差修正值为13,
但2001年误差修正值仍为13,因为2000年能被400整除,故不累加。而
2101年1月1日起误差修正值为14。
5. 实例:1998.3.15的星期、干支与二十八宿
B=(1998-1)*365+(31+28+15)=728979
C=(1998-1) div 4 - 13 + 0 = 486
A=B+C=728979+486=729465
星期序号=(5+729465) mod 7=0,即为星期日
干支序号=(13+729465) mod 60=58,即为辛酉
二十八宿序号=(23+729465) mod 28=4,即为房
1. 干支记年
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
甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥
公元后:年份(y)计算方式 :((y%60)-4+60)%60
公元前: 年份(y)计算方式: (57-y%60+60)%60
2.干支记月
年 份 |
一月 |
二月 |
三月 |
四月 |
五月 |
六月 |
七月 |
八月 |
九月 |
十月 |
十一月 |
十二月 |
甲、巳 |
丙寅 |
丁卯 |
戊辰 |
己巳 |
庚午 |
辛未 |
壬申 |
癸酉 |
甲戌 |
乙亥 |
丙子 |
丁丑 |
乙、庚 |
戊寅 |
己卯 |
庚辰 |
辛巳 |
壬午 |
癸未 |
甲申 |
乙酉 |
丙戌 |
丁亥 |
戊子 |
己丑 |
丙、辛 |
庚寅 |
辛卯 |
壬辰 |
癸巳 |
甲午 |
乙未 |
丙申 |
丁酉 |
戊戌 |
己亥 |
庚子 |
辛丑 |
丁、壬 |
壬寅 |
癸卯 |
甲辰 |
乙巳 |
丙午 |
丁未 |
戊申 |
己酉 |
庚戌 |
辛亥 |
壬子 |
癸丑 |
戊、癸 |
甲寅 |
乙卯 |
丙辰 |
丁巳 |
戊午 |
己未 |
庚申 |
辛酉 |
壬戌 |
癸亥 |
甲子 |
乙丑 |
注:干支与阳历一样都是以地球公转周期计算的,阴历最好转为阳历再计算,干支的月份是以二十四节气为起始,和阴历阳历的月份都没有直接关系
3.干支记日
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
其中 C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1月和2月按上一年的13月和14月来算。奇数月i=0,偶数月i=6。G 除以10的余数是天干,Z 除以12的余数是地支。
计算时带[ ]的数表示取整。
分享到:
相关推荐
输入年份,计算天干地支
易语言取某日天干地支计算源码,取某日天干地支计算,取天干名称,取地支名称,取天干地支
易语言取某日天干地支计算源码。@易语言入门教程。
2:提供农历年月日时的干支信息; 3:提供24节气信息及计算方法。理论上计算几百几千年的节气还是没什么问题的,甚至可以精确到分/秒。 但对于普通人来说,无非是查查最近几年几十年的节气,并且只需要精确到日,...
本人小白,初学C语言,用DEVC++编写的一个进行公历年和天干地支的算法,欢迎指导
日历表输入日期得到天干地支属相星座日历表输入日期得到天干地支属相星座
干支日计算公式.doc
干支日计算公式.docx
python运用函数设计计算
天干地支在择时中的应用初探20211017.pdf
可以根据年份得到该年份的天干地支,还可以查出某个天干地支的所有年份(最近网速不行,上传的东西比较少)
1.输入年份获取对应年份的干支(即天干地支,下同) 2.输入一个干支,返回这个干支年在公元-n至n年之间的所有年份 3.输入一个年份,返回这个年份对应的生肖属相 5.输入一个24小时制的小时数,返回这个小时数对应的...
带农历天干地支的日历插件、可以直接拿来使用的!
天干地支(年份参数:int ls_year 返回参数:string): mid(fill('甲乙丙丁戊己庚辛壬癸',40),(mod(ls_year -1924,10)+11)*2 -1,2)+mid(fill('子丑寅卯辰巳午未申酉戌亥',48),(mod(ls_year -1924,12)+13)*2 -1,2) //3...
最准确的万年历,包括公历、农历、天干地支等。
c++八字天干地支
小学数学数学故事天干地支纪年法
高中历史之历史百科天干地支纪年素材
易语言取某日天干地支计算源码.zip