计算生辰八字五行属性的算法

计算生辰八字五行属性的算法潘爱民2013/1/26 缘起:几年前,小儿出生的几天之内,我需要为他起名字。人生难得接一两回这样的任务,更是格外珍惜。我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的字。 说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中经验值的出处已无法找到。
摘要由CSDN通过智能技术生成

计算生辰八字五行属性的算法

潘爱民

2013/1/26

 

缘起:几年前,小儿出生的几天之内,我需要为他起名字。人生难得接一两回这样的任务,更是格外珍惜。我调研了几种起名字的思路,最终确定按照五行阴阳平衡的道理来确定生辰八字的五行属性,然后选取恰当的字。

 

说明:本文描述的算法是根据Internet上的资料整理而得到,并非我原创,但个别地方我做过修改。其中经验值的出处已无法找到。

算法的高度足够,我是坐在飞机上写下这一算法描述的,上万米高空俯瞰大地,感觉到一种静默的平衡J。在过去几年中,我用这一算法测算过十多个生辰八字,也碰到过一两个极端的情形,与现实中的表现比较吻合。因此,我相信这算法的结果有参考意义。但是,因使用该算法引起的任何意外事故,我概不负责,请谨慎使用。

 

算法的过程如下所述:

1.       根据出生年月日和时辰,确定八个字,即生辰八字。

查万年历(比如www.nongli.net),确定前六个字。比如1968年8月8日,查到的结果是:

戊申辛酉壬寅

这六个字分别是年份的天干、地支,月份的天干、地支,和日子的天干、地支。

接下来确定时辰的天干和地支,查下表:

 

出生
钟点

时辰地支

日干(即第5个字)

甲 己

乙 庚

丙 辛

丁 壬

戊 癸

23-1

1-3

3-5

5-7

7-9

9-11

11-13

13-15

15-17

17-19

19-21

21-23

甲子

乙丑

丙寅

丁卯

戊辰

己巳

庚午

辛未

壬申

癸酉

甲戌

乙亥

丙子

丁丑

戊寅

己卯

庚辰

辛巳

壬午

癸未

甲申

乙酉

丙戌

丁亥

戊子

己丑

庚寅

辛卯

壬辰

癸巳

甲午

乙未

丙申

丁酉

戊戌

己亥

庚子

辛丑

壬寅

癸卯

甲辰

己巳

丙午

丁未

戊申

己酉

庚戌

辛亥

壬子

癸丑

甲寅

乙卯

丙辰

丁巳

戊午

己未

庚申

辛酉

壬戌

癸亥

 

首先根据出生钟点找到相应的行数,再根据第5个字(日干),在右边5列中定位到相应的列,即可得到时辰的天干、地支,即第7、8两个字。譬如,1968年8月8日8点钟,在“7-9”这一行,“丁壬”这一列,得到时辰的干支为“甲辰”,所以,最终的八字为:

戊申辛酉壬寅甲辰

 

2.       计算八字的五行属性。

首先,每个天干和地支都有对应的五行属性,如下面两表所示:

 

天干属性:

天干

属性

天干

属性

天干

属性

 

 

 

 

 

地支属性:

地支

属性

地支

属性

地支

属性

 

接下来,计算五行“金木水火土”的强度值。对于五行中的每一行,其强度值包括两部分:

l  天干强度:即八字中的4个天干,若其五行属性恰好是这一行,那么就有相应的贡献值,可查表如下:

 

生月\天干

子月

1.2

1.2

1.0

1.0

1.0

1.0

1.0

1.0

1.2

1.2

丑月

1.06

1.06

1.0

1.0

1.1

1.1

1.14

1.14

1.1

1.1

寅月

1.14

1.14

1.2

1.2

1.06

1.06

1.0

1.0

1.0

1.0

卯月

1.2

1.2

1.2

1.2

1.0

1.0

1.0

1.0

1.0

1.0

辰月

1.1

1.1

1.06

1.06

1.1

1.1

1.1

1.1

1.04

1.04

巳月

1.0

1.0

1.14

1.14

1.14

1.14

1.06

1.06

1.06

1.06

午月

1.0

1.0

1.2

1.2

1.2

1.2

1.0

1.0

1.0

1.0

未月

1.04

1.04

1.1

1.1

1.16

1.16

1.1

1.1

1.0

1.0

申月

1.06

1.06

1.0

1.0

1.0

1.0

1.14

1.14

1.2

1.2

酉月

1.0

1.0

1.0

1.0

1.0

1.0

1.2

1.2

1.2

1.2

戌月

1.0

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
好的,以下是用 Java 编写的一个简单的生辰八字计算算法: ```java public class EightCharacterCalculator { public static String calculateEightCharacter(int year, int month, int day, int hour) { String[] tiangan = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"}; String[] dizhi = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"}; String[] wuxing = {"水", "土", "木", "木", "土", "火", "火", "土", "金", "金", "土", "水"}; int[] shuxiang = {2, 1, 2, 2, 1, 1, 0, 1, 0, 0, 1, 0}; int[] shichen = {23, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21}; int y = year - 4; int zhiIndex = (y % 60) % 12; String tianganStr = tiangan[(y % 60) % 10]; String dizhiStr = dizhi[zhiIndex]; String wuxingStr = wuxing[zhiIndex % 5]; int shuxiangIndex = (zhiIndex + 1) % 12; int shuxiangValue = shuxiang[shuxiangIndex]; int shichenIndex = hour / 2; int shichenValue = shichen[shichenIndex % 12]; String result = tianganStr + dizhiStr + "年 " + wuxingStr + " " + shuxiangValue + " " + shichenValue; return result; } } ``` 这个方法接受四个参数:年、月、日、时,返回一个字符串,表示该生辰的八字。在方法中,我们首先建立了一个 tiangan 数组和一个 dizhi 数组,分别表示天干和地支。然后我们计算出该年的天干和地支的索引,以及天干和地支的字符串值,并且计算出地支的五行属性。接着,我们根据地支的索引计算出该地支的属性值,以及根据出生时间计算出该时辰的属性值。最后,我们将这些信息整合成一个字符串,返回给调用者。需要注意的是,这个算法只是一个简单的实现,对于更加复杂的生辰八字计算算法,还需要考虑更多的因素。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值