migration: establish exact preserved app baseline
This commit is contained in:
+101
@@ -0,0 +1,101 @@
|
||||
# -*- 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
|
||||
Reference in New Issue
Block a user