python计算太岁压祭主: 计算那些人今年不能做家务长及避免直视死者

发布时间 2023-05-08 06:41:40作者: 磁石空杯

太岁压祭主

太岁压祭主,就是“太岁压制祭拜之人的运气”。

所谓太岁,包含3层意思。一是当年太岁,这个在全国广泛使用。二是死者的本命太岁。三是死者的去世日。以第一种最为关键。人在运势不好的时候,第2,3种也需要避免,甚至月犯太岁压祭主都要避免。

太岁压祭主,就是“太岁压制祭拜之人的运气”。祭主俗称家务长,这些带头祭奠的主持人就是祭主。作为祭主,是有很多讲究的,适宜则可,不适宜将给自己带来不顺。

太岁每年都对6种出生年份的人,存在比相冲更严重的衝突,这就是“压”。泰山压顶的压,如果不加以避忌,对先人、祭主都不利。

古时礼仪认为,一丧挡三灾,办妥一宗丧事可消除3宗灾劫。事关办丧事是孝道“慎终追远”的具体表现,避免犯太岁压祭主的大忌,是孝子应尽责任。

祭主在先人大殓、升棺、辞灵、火化、安葬时,转身避免与先人面对面。犯太岁压祭主者同样需要避免与先人面对面。

image

太岁压祭主怎样算?

年干支逆数第六为第一个太岁压祭主,2023年癸卯(序号40)逆数6至丁酉(序号34),亦即第一个太岁压祭主。后面5个太岁压祭主都是用前一个逆数9个推算得出。

{
    1:"甲子", 13:"丙子", 25:"戊子", 37:"庚子", 49:"壬子", 2:"乙丑", 14:"丁丑", 26:"己丑", 38:"辛丑", 50:"癸丑", 
    3:"丙寅", 15:"戊寅", 27:"庚寅", 39:"壬寅", 51:"甲寅", 4:"丁卯", 16:"己卯", 28:"辛卯", 40:"癸卯", 52:"乙卯", 
    5:"戊辰", 17:"庚辰", 29:"壬辰", 41:"甲辰", 53:"丙辰", 6:"己巳", 18:"辛巳", 30:"癸巳", 42:"乙巳", 54:"丁巳", 
    7:"庚午", 19:"壬午", 31:"甲午", 43:"丙午", 55:"戊午", 8:"辛未", 20:"癸未", 32:"乙未", 44:"丁未", 56:"己未", 
    9:"壬申", 21:"甲申", 33:"丙申", 45:"戊申", 57:"庚申", 10:"癸酉", 22:"乙酉", 34:"丁酉", 46:"己酉", 58:"辛酉", 11:"甲戌", 23:"丙戌", 35:"戊戌", 47:"庚戌", 59:"壬戌", 12:"乙亥", 24:"丁亥", 36:"己亥", 48:"辛亥", 60:"癸亥"}

今年(2023年)犯太岁压祭主的年份如下

{'丁酉': [1957, 2017], '戊子': [1948, 2008], '己卯': [1939, 1999], '庚午': [1930, 1990], '辛酉': [1981, 2041], '壬子': [1972, 2032]}

死者在丙辰日死亡,与其冲犯的人便有'丁巳', '戊申', '己亥', '庚寅', '辛巳', '壬申',在亡人盖棺、棺木移动、下葬时,便应该背转身及闭目回避,否则亦算犯”压祭主"。

{'丁巳': [1977], '戊申': [1968], '己亥': [1959, 2019], '庚寅': [1950, 2010], '辛巳': [1941, 2001], '壬申': [1932, 1992], 'all': [1932, 1941, 1950, 1959, 1968, 1977, 1992, 2001, 2010, 2019]}

如果实在无法避开太岁压祭主,拜太岁、烧平安符、佩戴吉祥物等也可化解。

image

用python计算太岁压祭主

# 太岁压祭主
from bidict import bidict

Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]

ganzhi60 = bidict({
    1:"甲子", 13:"丙子", 25:"戊子", 37:"庚子", 49:"壬子", 2:"乙丑", 14:"丁丑", 26:"己丑", 38:"辛丑", 50:"癸丑", 
    3:"丙寅", 15:"戊寅", 27:"庚寅", 39:"壬寅", 51:"甲寅", 4:"丁卯", 16:"己卯", 28:"辛卯", 40:"癸卯", 52:"乙卯", 
    5:"戊辰", 17:"庚辰", 29:"壬辰", 41:"甲辰", 53:"丙辰", 6:"己巳", 18:"辛巳", 30:"癸巳", 42:"乙巳", 54:"丁巳", 
    7:"庚午", 19:"壬午", 31:"甲午", 43:"丙午", 55:"戊午", 8:"辛未", 20:"癸未", 32:"乙未", 44:"丁未", 56:"己未", 
    9:"壬申", 21:"甲申", 33:"丙申", 45:"戊申", 57:"庚申", 10:"癸酉", 22:"乙酉", 34:"丁酉", 46:"己酉", 58:"辛酉", 
    11:"甲戌", 23:"丙戌", 35:"戊戌", 47:"庚戌", 59:"壬戌", 12:"乙亥", 24:"丁亥", 36:"己亥", 48:"辛亥", 60:"癸亥"})


def get_jizhu(gan, zhi):
    
    gan_index = Gan.index(gan)
    zhi_index = Zhi.index(zhi) 
    result = {}
    for i in range(6):
        ganzhi = "{}{}".format(Gan[(gan_index-6-i*9 )%10], Zhi[(zhi_index-6-i*9)%12])
        result[ganzhi] = get_year_of_ganzhi(ganzhi)
    return result

def get_year_of_ganzhi(ganzhi):
    seq = ganzhi60.inverse[ganzhi]
    year = 1983 + seq
    return [year - 60, year]       
    
print(get_jizhu('丙', '申'))

为了大家使用方便,我把以上代码开源在 https://github.com/china-testing/bazi, 熟悉python者可以自行研究。如对python不熟悉需要看,可以V: pythontesting 发红包帮忙看。

image