Python 获取年月日时的天干地支阴阳五行

代码如下:


tgs = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]  # 天干列表
dzs = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]  # 地支列表
sxs = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]  # 属相列表tgwxs = ["木", "木", "火", "火", "土", '土', '金', '金', '水', '水']  # 天干五行
dzwxs = ['水', '土', '木', '木', '土', '火', '火', '土', '金', '金', '土', '水']  # 地支五行tgys = {"甲": 3, "乙": 5, "丙": 7, "丁": 9, "戊": 1, "己": 3, "庚": 5, "辛": 7, "壬": 9, "癸": 1}
ydays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]yys = {0: '阳', 1: '阴'}def get_tgdz(this_date='2023-09-17 12:27:12'):_Y = int(this_date[:4])_M = int(this_date[5:7])_D = int(this_date[8:10])_H = int(this_date[11:13])yt = (_Y - 3) % 10 - 1  # 年天干yd = (_Y - 3) % 12 - 1  # 年地支mt = (tgys[tgs[yt]] - 2 + _M) % 10  # 月天干md = (_M + 1) % 12  # 月地支"""日干支公式:1900—-1999年日干支基数=(年尾二位数+3)×5+55+(年尾二位数-1)/42000—-2099年日干支基数=(年尾二位数+7)×5+15+(年尾二位数+19)/4(只用商数,余数不用,超过60就去掉60)"""if 1900 <= _Y <= 1999:_js = int((_Y % 100 + 3) * 5 + 55 + (_Y % 100 - 1) / 4)elif 2000 <= _Y <= 2099:_js = int((_Y % 100 + 7) * 5 + 15 + (_Y % 100 + 19) / 4)else:return '只能查询1900-2099年的范围!'_js = _js % 60 if _js % 60 else 60for i in range(_M - 1):_js += ydays[i]if i == 1 and _Y % 4 == 0:_js += 1else:_js += _D_js = _js % 60 if _js % 60 else 60dt = _js % 10 - 1  # 日天干dd = _js % 12 - 1  # 日地支hd = (_H+1)//2%12 if _H%2 else _H//2  # 时地支ht = ((dt + 1) * 2 + hd - 2) % 10  # 时天干gz_str = f"{tgs[yt]}{dzs[yd]}{tgs[mt]}{dzs[md]}{tgs[dt]}{dzs[dd]}{tgs[ht]}{dzs[hd]}"  # 干支yy_str = f"{yys[yt%2]}{yys[yd%2]}{yys[mt%2]}{yys[md%2]}{yys[dt%2]}{yys[dd%2]}{yys[ht%2]}{yys[hd%2]}"  # 阴阳wx_str = f"{tgwxs[yt]}{dzwxs[yd]}{tgwxs[mt]}{dzwxs[md]}{tgwxs[dt]}{dzwxs[dd]}{tgwxs[ht]}{dzwxs[hd]}"  # 五行return {'干支': gz_str, '阴阳': yy_str, '五行': wx_str}if __name__ == '__main__':gz = get_tgdz('2023-09-17 12:58:12')for i in range(8):print(gz['干支'][i], end=' ')print()for i in range(8):print(gz['阴阳'][i], end=' ')print()for i in range(8):print(gz['五行'][i], end=' ')"""
输出:
癸 卯 壬 戌 戊 寅 戊 午
阴 阴 阳 阳 阳 阳 阳 阳
水 木 水 土 土 木 土 火
"""


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部