如何在python中计算天干地支的五行旺衰

我们在计算一个八字中,不可避免的要用到旺衰。旺衰的判断主要是通过月支进行判断,具体旺衰如下:
春天:木火旺,余下的衰。
夏天:火土旺,余下的衰。
秋天:金水旺,余下的衰。
冬天:水木旺,余下的衰。
具体思路:
列出所有立春、立夏、立秋、立冬。

self.__Li = [19700204, 19700506, 19700808, 19701108, 19710204, 19710506, 19710808, 19711108, 19720205, 19720505,
                19720807, 19721107, 19730204, 19730505, 19730808, 19731107, 19740204, 19740506, 19740808, 19741108,
                19750204, 19750506, 19750808, 19751108, 19760205, 19760505, 19760807, 19761107, 19770204, 19770505,
                19770807, 19771107, 19780204, 19780506, 19780808, 19781108, 19790204, 19790506, 19790808, 19791108,
                19800205, 19800505, 19800807, 19801107, 19810204, 19810505, 19810807, 19811107, 19820204, 19820506,
                19820808, 19821108, 19830204, 19830506, 19830808, 19831108, 19840204, 19840505, 19840807, 19841107,
                19850204, 19850505, 19850807, 19851107, 19860204, 19860506, 19860808, 19861108, 19870204, 19870506,
                19870808, 19871108, 19880204, 19880505, 19880807, 19881107, 19890204, 19890505, 19890807, 19891107,
                19900204, 19900506, 19900808, 19901108, 19910204, 19910506, 19910808, 19911108, 19920204, 19920505,
                19920807, 19921107, 19930204, 19930505, 19930807, 19931107, 19940204, 19940506, 19940808, 19941107,
                19950204, 19950506, 19950808, 19951108, 19960204, 19960505, 19960807, 19961107, 19970204, 19970505,
                19970807, 19971107, 19980204, 19980506, 19980808, 19981107, 19990204, 19990506, 19990808, 19991108,
                20000204, 20000505, 20000807, 20001107, 20010204, 20010505, 20010807, 20011107, 20020204, 20020506,
                20020808, 20021107, 20030204, 20030506, 20030808, 20031108, 20040204, 20040505, 20040807, 20041107,
                20050204, 20050505, 20050807, 20051107, 20060204, 20060505, 20060807, 20061107, 20070204, 20070506,
                20070808, 20071108, 20080204, 20080505, 20080807, 20081107, 20090204, 20090505, 20090807, 20091107,
                20100204, 20100505, 20100807, 20101107, 20110204, 20110506, 20110808, 20111108, 20120204, 20120505,
                20120807, 20121107, 20130204, 20130505, 20130807, 20131107, 20140204, 20140505, 20140807, 20141107,
                20150204, 20150506, 20150808, 20151108, 20160204, 20160505, 20160807, 20161107, 20170203, 20170505,
                20170807, 20171107, 20180204, 20180505, 20180807, 20181107, 20190204, 20190506, 20190808, 20191108,
                20200204, 20200505, 20200807, 20201107, 20210203, 20210505, 20210807, 20211107, 20220204, 20220505,
                20220807, 20221107, 20230204, 20230506, 20230808, 20231108, 20240204, 20240505, 20240807, 20241107,
                20250203, 20250505, 20250807, 20251107, 20260204, 20260505, 20260807, 20261107, 20270204, 20270506,
                20270808, 20271107, 20280204, 20280505, 20280807, 20281107, 20290203, 20290505, 20290807, 20291107,
                20300204, 20300505, 20300807, 20301107]

然后把日期添加到这个列表中,对列表进行排序,除以4取余数,就能知道这个日期所在的季节了:
0为冬天,1为春天,2为夏天,3为秋天

self.celander = self.year * 10000 + self.month * 100 + self.day
        if self.celander in self.__Li:
            self.celander = int(self.celander + 1)
            self.result = int(self.__Li.index(self.celander))
        elif self.celander not in self.__Li:
            self.__Li.append(self.celander)
            self.__Li.sort()
            self.result = int(self.__Li.index(self.celander))

        self.final_result = self.result % 4
        self.season_result = self.__Jijie[self.final_result]

这个时候,季节相对应的旺衰也就出来了。

花了一天的时间,把我先前所有做的关于八字和占卜的Python代码都封装成了一个库,传到了github上。在我们的客户里,程序员只占到了很少的一部分,但是我还是希望我们大家能一起为传统文化的现代化做点事情。附图为说明文档,Python库下载地址:https://github.com/miaoxingjun/ZhanBu

猜你喜欢

转载自blog.csdn.net/miaoxingjundada/article/details/105150669