python计算太岁压祭主: 计算那些人今年不能做家务长及避免直视死者
太岁压祭主
太岁压祭主,就是“太岁压制祭拜之人的运气”。
所谓太岁,包含3层意思。一是当年太岁,这个在全国广泛使用。二是死者的本命太岁。三是死者的去世日。以第一种最为关键。人在运势不好的时候,第2,3种也需要避免,甚至月犯太岁压祭主都要避免。
太岁压祭主,就是“太岁压制祭拜之人的运气”。祭主俗称家务长,这些带头祭奠的主持人就是祭主。作为祭主,是有很多讲究的,适宜则可,不适宜将给自己带来不顺。
太岁每年都对6种出生年份的人,存在比相冲更严重的衝突,这就是“压”。泰山压顶的压,如果不加以避忌,对先人、祭主都不利。
古时礼仪认为,一丧挡三灾,办妥一宗丧事可消除3宗灾劫。事关办丧事是孝道“慎终追远”的具体表现,避免犯太岁压祭主的大忌,是孝子应尽责任。
祭主在先人大殓、升棺、辞灵、火化、安葬时,转身避免与先人面对面。犯太岁压祭主者同样需要避免与先人面对面。
太岁压祭主怎样算?
年干支逆数第六为第一个太岁压祭主,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]}
如果实在无法避开太岁压祭主,拜太岁、烧平安符、佩戴吉祥物等也可化解。
用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 发红包帮忙看。