如何算日干支 日干支怎么计算

小编

日干支就是把每一天按 60甲子循环 排列。计算思路是:先把公历日期换成一个连续日数,再对 60 取余。

下面给你一个常用、稳定的算法。

一、60甲子编号

把六十甲子从 0 开始编号:

| 编号 | 干支 |

|||

| 0 | 甲子 |

| 1 | 乙丑 |

| 2 | 丙寅 |

| 3 | 丁卯 |

| 4 | 戊辰 |

| ... | ... |

| 40 | 甲辰 |

| ... | ... |

| 59 | 癸亥 |

天干序号:

```text

0甲 1乙 2丙 3丁 4戊 5己 6庚 7辛 8壬 9癸

```

地支序号:

```text

0子 1丑 2寅 3卯 4辰 5巳 6午 7未 8申 9酉 10戌 11亥

```

二、公历日期转儒略日 JDN

设公历日期为:年 Y,月 M,日 D。

如果月份是 1月或2月,要把它看成上一年的 13月、14月:

```text

如果 M <= 2:

Y = Y - 1

M = M + 12

```

然后计算:

```text

A = floor(Y / 100)

B = 2 - A + floor(A / 4)

JDN = floor(365.25 × (Y + 4716))

+ floor(30.6001 × (M + 1))

+ D + B - 1524

```

三、计算日干支序号

公式:

```text

干支序号 = (JDN + 49) mod 60

```

然后:

```text

天干序号 = 干支序号 mod 10

地支序号 = 干支序号 mod 12

```

再查天干、地支表即可。

四、举例:计算 2024年2月10日 的日干支

因为 2月要当作上一年的 14月:

```text

Y = 2023

M = 14

D = 10

```

计算:

```text

A = floor(2023 / 100) = 20

B = 2 - 20 + floor(20 / 4) = -13

```

得到:

```text

如何算日干支  日干支怎么计算

JDN = 2460351

```

日干支序号:

```text

(2460351 + 49) mod 60 = 40

```

40 对应:

```text

天干序号 = 40 mod 10 = 0 = 甲

地支序号 = 40 mod 12 = 4 = 辰

```

所以:

```text

2024年2月10日 = 甲辰日

```

五、简化记法

核心公式可以记为:

```text

日干支序号 = (JDN + 49) mod 60

```

其中:

```text

0 = 甲子

1 = 乙丑

2 = 丙寅

...

59 = 癸亥

```

六、注意事项

如果只是查普通日历日期,按公历当天计算即可。

但如果用于八字排盘,要注意有些流派认为日柱在晚上 23点子时 就换日,而不是凌晨 0点。所以出生在晚上 23点到 24点之间的人,日柱可能会有不同排法。