五行、八卦、风水与算命

纯属业余时间的消遣,姑妄了解一些传统文化的常识问题。

1. 天干与地支

  • 十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
  • 十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥

干支的一个循环为一个甲子,共经历60年。天干是10,地支是12,如果是笛卡尔积进行配对的话,周期就是120年了。

我们来看一个完整的甲子:

甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 甲戌 乙亥
丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未 甲申 乙酉 丙戌 丁亥
戊子 己丑 庚寅 辛卯 壬辰 癸巳 甲午 乙未 丙申 丁酉 戊戌 己亥
庚子 辛丑 壬寅 癸卯 甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥
壬子 癸丑 甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥

不是笛卡尔积,而是最小公倍数。

>> tiangan = '甲乙丙丁戊己庚辛壬癸'
>> dizhi = '子丑寅卯辰巳午未申酉戌亥'
>> [(i, j) for i, j in zip(tiangan*6, dizhi*5)]

2. 甲子年份的计算

已知公元第4年是第一个甲子年,那么每一个甲子年的年份的计算公式是:

y=60×n+4

也即距今最近的甲子年为 60*33+4 = 1984.

3. 年份与天干地支

我们又该如何根据年份(比如2016年)获取它对应的天干地支的纪年方式呢?

因为一个甲子(从开始的甲子年到最终的癸亥年)是严格有序的,故可维护一张,对甲子的偏移到天干地支纪年的映射表。

偏移可通过如下的方式获取:

offset=(y4)%60

def year2tiangandizhi(y):
    return (y-4)%60

table = []
with open('./jiazi.txt') as f:
    for line in f:
        table += line.split(' ')
print(table[year2tiangandizhi(2016)])
            # 丙申

其中jiazi.txt的文件内容为:

甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 甲戌 乙亥
丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未 甲申 乙酉 丙戌 丁亥
戊子 己丑 庚寅 辛卯 壬辰 癸巳 甲午 乙未 丙申 丁酉 戊戌 己亥
庚子 辛丑 壬寅 癸卯 甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥
壬子 癸丑 甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥

4. 地支与十二生肖

生肖是12个,地支也是12个,可见生肖与地支是1对1的关系,所以不管,是丙申,年还是壬申年,都是猴年。

子丑寅卯:鼠、牛、虎、兔
辰巳午未:龙、蛇、马、羊
申酉戌亥:猴、鸡、狗、猪

5. 天干与五行

甲乙东方木
丙丁南方火
戊己四季土
庚辛西方金
壬癸北方水

所以“丙去”,因为“丙丁”属火,“丙去”的意思就是“烧去”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值