tradecatlabs's picture
deploy FateCat HF Space free web workbench
acb2cec verified
Raw
History Blame Contribute Delete
2.61 kB
# -*- coding: utf-8 -*-
from . import XiaoYun, LiuNian
from ..util import LunarUtil
class DaYun:
"""
大运
"""
def __init__(self, yun, index: int):
self.__yun = yun
self.__lunar = yun.getLunar()
self.__index = index
birth_year = yun.getLunar().getSolar().getYear()
year = yun.getStartSolar().getYear()
if index < 1:
self.__startYear = birth_year
self.__startAge = 1
self.__endYear = year - 1
self.__endAge = year - birth_year
else:
add = (index - 1) * 10
self.__startYear = year + add
self.__startAge = self.__startYear - birth_year + 1
self.__endYear = self.__startYear + 9
self.__endAge = self.__startAge + 9
def getStartYear(self):
return self.__startYear
def getEndYear(self):
return self.__endYear
def getStartAge(self):
return self.__startAge
def getEndAge(self):
return self.__endAge
def getIndex(self):
return self.__index
def getLunar(self):
return self.__lunar
def getGanZhi(self):
"""
获取干支
:return: 干支
"""
if self.__index < 1:
return ""
offset = LunarUtil.getJiaZiIndex(self.__lunar.getMonthInGanZhiExact())
offset += self.__index if self.__yun.isForward() else -self.__index
size = len(LunarUtil.JIA_ZI)
if offset >= size:
offset -= size
if offset < 0:
offset += size
return LunarUtil.JIA_ZI[offset]
def getXun(self):
"""
获取所在旬
:return: 旬
"""
return LunarUtil.getXun(self.getGanZhi())
def getXunKong(self):
"""
获取旬空(空亡)
:return: 旬空(空亡)
"""
return LunarUtil.getXunKong(self.getGanZhi())
def getLiuNian(self, n=10):
"""
获取流年
:param n: 轮数
:return: 流年
"""
if self.__index < 1:
n = self.__endYear - self.__startYear + 1
liu_nian = []
for i in range(0, n):
liu_nian.append(LiuNian(self, i))
return liu_nian
def getXiaoYun(self, n=10):
"""
获取小运
:param n: 轮数
:return: 小运
"""
if self.__index < 1:
n = self.__endYear - self.__startYear + 1
xiao_yun = []
for i in range(0, n):
xiao_yun.append(XiaoYun(self, i, self.__yun.isForward()))
return xiao_yun