-
Notifications
You must be signed in to change notification settings - Fork 4
/
四柱速算.py
33 lines (28 loc) · 1.25 KB
/
四柱速算.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#生辰八字速算公式
from datetime import datetime
g=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸','甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
z=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥','子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']
#年柱
#公元4年是第一个甲子年
g1=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
z1=['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']
print('请输入年份')
y=int(input())
g1=str(g1[((y-3)%60)%10-1])
z1=str(z1[((y-3)%60)%12-1])
print(g1+z1)
#月柱
#月柱的天干需要用到年柱来计算,这里算的都是一月的天干
g2={'甲':'丙','乙':'戊','丙':'庚','丁':'壬','戊':'甲','己':'丙','庚':'戊','辛':'庚','壬':'壬','癸':'甲',}
#月柱的地支是固定的
z2={2:'寅',3:'卯',4:'辰',5:'巳',6:'午',7:'未',8:'申',9:'酉',10:'戌',11:'亥',12:'子',1:'丑',}
print('请输入月份')
m=int(input())
print(str(g[m-2+g.index(g2[g1])])+str(z2[m]))
# 日柱
#公元123年3月8日是甲子日
print('请输入日期')
d=int(input())
g3=str(g[(datetime(y,m,d)-datetime(123,3,7)).days%60%10-1])
z3=str(z[(datetime(y,m,d)-datetime(123,3,7)).days%60%12-1])
print(g3+z3)