29 Star 173 Fork 72

6tail/lunar-python

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Foto.py 3.76 KB
一键复制 编辑 原始数据 按行查看 历史
# -*- coding: utf-8 -*-
from . import Lunar, LunarMonth
from .util import LunarUtil, FotoUtil
class Foto:
"""
佛历
"""
DEAD_YEAR = -543
def __init__(self, lunar):
self.__lunar = lunar
@staticmethod
def fromLunar(lunar):
return Foto(lunar)
@staticmethod
def fromYmdHms(year, month, day, hour, minute, second):
return Foto.fromLunar(Lunar.fromYmdHms(year + Foto.DEAD_YEAR - 1, month, day, hour, minute, second))
@staticmethod
def fromYmd(year, month, day):
return Foto.fromYmdHms(year, month, day, 0, 0, 0)
def getLunar(self):
return self.__lunar
def getYear(self):
sy = self.__lunar.getSolar().getYear()
y = sy - Foto.DEAD_YEAR
if sy == self.__lunar.getYear():
y += 1
return y
def getMonth(self):
return self.__lunar.getMonth()
def getDay(self):
return self.__lunar.getDay()
def getYearInChinese(self):
y = str(self.getYear())
s = ""
for i in range(0, len(y)):
s += LunarUtil.NUMBER[ord(y[i]) - 48]
return s
def getMonthInChinese(self):
return self.__lunar.getMonthInChinese()
def getDayInChinese(self):
return self.__lunar.getDayInChinese()
def getFestivals(self):
festivals = []
md = "%d-%d" % (abs(self.getMonth()), self.getDay())
if md in FotoUtil.FESTIVAL:
fs = FotoUtil.FESTIVAL[md]
for f in fs:
festivals.append(f)
return festivals
def getOtherFestivals(self):
"""
获取纪念日
:return: 非正式的节日列表,如中元节
"""
festivals = []
key = "%d-%d" % (self.getMonth(), self.getDay())
if key in FotoUtil.OTHER_FESTIVAL:
for f in FotoUtil.OTHER_FESTIVAL[key]:
festivals.append(f)
return festivals
def isMonthZhai(self):
m = self.getMonth()
return 1 == m or 5 == m or 9 == m
def isDayYangGong(self):
for f in self.getFestivals():
if "杨公忌" == f.getName():
return True
return False
def isDayZhaiShuoWang(self):
d = self.getDay()
return 1 == d or 15 == d
def isDayZhaiSix(self):
d = self.getDay()
if 8 == d or 14 == d or 15 == d or 23 == d or 29 == d or 30 == d:
return True
elif 28 == d:
m = LunarMonth.fromYm(self.__lunar.getYear(), self.getMonth())
return m is not None and 30 != m.getDayCount()
return False
def isDayZhaiTen(self):
d = self.getDay()
return 1 == d or 8 == d or 14 == d or 15 == d or 18 == d or 23 == d or 24 == d or 28 == d or 29 == d or 30 == d
def isDayZhaiGuanYin(self):
k = "%d-%d" % (self.getMonth(), self.getDay())
for d in FotoUtil.DAY_ZHAI_GUAN_YIN:
if k == d:
return True
return False
def getXiu(self):
return FotoUtil.getXiu(self.getMonth(), self.getDay())
def getXiuLuck(self):
return LunarUtil.XIU_LUCK[self.getXiu()]
def getXiuSong(self):
return LunarUtil.XIU_SONG[self.getXiu()]
def getZheng(self):
return LunarUtil.ZHENG[self.getXiu()]
def getAnimal(self):
return LunarUtil.ANIMAL[self.getXiu()]
def getGong(self):
return LunarUtil.GONG[self.getXiu()]
def getShou(self):
return LunarUtil.SHOU[self.getGong()]
def __str__(self):
return self.toString()
def toString(self):
return "%s年%s月%s" % (self.getYearInChinese(), self.getMonthInChinese(), self.getDayInChinese())
def toFullString(self):
s = self.toString()
for f in self.getFestivals():
s += " (%s)" % f
return s
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/6tail/lunar-python.git
git@gitee.com:6tail/lunar-python.git
6tail
lunar-python
lunar-python
master

搜索帮助