|
主题:计算公历任意一天的干支 |
|
|
|
|
|
|
|
|
|
 |
等级: 青衣书童 |
| 发贴: 2 |
| 积分: 3 |
| 经验: 3 |
| 体力: 371 |
| 货币: 0 金币 |
| 注册: 2005-12-29 |
| 虚拟形象: 展现自我风采 |
|
|
|
计算公历任意一天的干支 |
|
|
计算公历任意一天的天干和地支的公式:
天干: g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3;
g的个位数就是天干序号;
地支: z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇数月i=0,偶数月i=6)
如果先求得了g,那么
z = g + 4C + 10 + i (奇数月i=0,偶数月i=6).
z除以12的余数就是地支序号。
其中:C=世纪数-1,y=年份后两位,M=月份,d=日数,[ ]表示取整数。
1月和2月按上一年的13月和14月来算,因此C和y也要按上一年的年份来取值。
例:算1644年3月22日的干支?
g = 4 * 16 + [16/4] + 5 * 44 + [44/4] + [3*(3+1) / 5] + 22 - 3
= 64 + 4 + 220 + 11 + 2 + 22 - 3
= 320,
个位数是0,天干为癸。
z = g + 4C + 10
= 320 + 64 + 10
= 394,
除以12余10,地支为酉。
所以这一天的干支是“癸酉”。
公历年的年份也很容易算出农历年的干支来:
(Y-3) 个位数就是天干序号;
(Y-3)/12 余数就是地支序号。
如:2004年的干支
2004-3=2001 个位数为1即天干“甲”
2001/12=166余9 即地支“申”
这年的干支为“甲申” 。
|
 |
|
|
2006-2-13 8:15:10 |
|
|
|
|
|
|
|
     |
|
|
|
 |
等级: 八品秀才 |
| 发贴: 413 |
| 积分: 323 |
| 经验: 443 |
| 体力: 266171 |
| 货币: 3 金币 |
| 注册: 2007-04-07 |
| 虚拟形象: 展现自我风采 |
|
|
2007-7-22 17:43:24 |
|
|
状态: |
|
论坛跳转: |
|
|