Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c0c6575

Browse files
committed
Merge branch 'master' of https://github.com/yuangu/sxtwl_cpp
# Conflicts: # python/setup.py # python/sxtwl.py # python/sxtwl_wrap.cxx # src/lunar.h # swig/sxtwl.i
2 parents efd2a84 + 34eb796 commit c0c6575

File tree

7 files changed

+218
-1
lines changed

7 files changed

+218
-1
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414

1515
*.vs
1616
*Debug
17-
*build
17+
*build
17.6 KB
Binary file not shown.
Binary file not shown.

python/sxtwl.egg-info/PKG-INFO

Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
1+
Metadata-Version: 2.1
2+
Name: sxtwl
3+
Version: 2.0.1
4+
Summary: sxtwl_cpp warpper for python
5+
Home-page: https://github.com/yuangu/sxtwl_cpp
6+
Author: yuangu
7+
Author-email: [email protected]
8+
License: BSD
9+
Description: ### 安装方法
10+
11+
```
12+
pip install sxtwl
13+
```
14+
15+
具体使用方法参考:
16+
https://pypi.org/project/sxtwl/
17+
18+
本项目 [GitHub](https://github.com/yuangu/sxtwl_cpp) / [Gitee(码云)](https://gitee.com/yuangu/sxtwl)。
19+
20+
21+
### 使用方法
22+
23+
1. 因为考虑到繁体和简体字的原因,所以本库不以硬编码的形式显示结果。下面是参考的简单索引
24+
```
25+
Gan = ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
26+
Zhi = ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]
27+
ShX = ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]
28+
numCn = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"]
29+
jqmc = ["冬至", "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪"]
30+
ymc = ["十一", "十二", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十" ]
31+
rmc = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十", "卅一"]
32+
XiZ = ['摩羯', '水瓶', '双鱼', '白羊', '金牛', '双子', '巨蟹', '狮子', '处女', '天秤', '天蝎', '射手']
33+
```
34+
35+
2. 引入本库
36+
```
37+
import sxtwl
38+
39+
# 从公历年月日获取一天的信息
40+
day = sxtwl.fromSolar(2021, 11, 7)
41+
42+
# 从农历年月日获取一天的信息
43+
day = sxtwl.fromLunar(2020, 12, 1)
44+
```
45+
46+
3. 获取某天的信息(这里的信息有,阴历,阳历,二十四节气,天干地支,星期几等)
47+
48+
```
49+
# 公历的年月日
50+
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
51+
print(s)
52+
53+
# 星期几
54+
print(WeekCn[day.getWeek()])
55+
56+
# 这个月的第几周
57+
print('该日属于这个月的第%d周'%(day.getWeekIndex(),))
58+
59+
# 星座(有bug?待修复)
60+
print("星座:", XiZ[day.getConstellation()])
61+
62+
# 以春节为界的农历(注getLunarYear如果没有传参,或者传true,是以春节为界的)
63+
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
64+
print(s)
65+
66+
# 不以立春为界的农历
67+
s = "农历:%d年%s%d月%d日" % (day.getLunarYear(False), '闰' if day.isLunarLeap() else '', day.getLunarMonth(), day.getLunarDay())
68+
print(s)
69+
70+
71+
# 以春节为界的天干地支
72+
yTG = day.getYearGZ(True)
73+
print("以春节为界的年干支", Gan[yTG.tg] + Zhi[yTG.dz])
74+
print("以春节为界的生肖:", ShX[yTG.dz])
75+
76+
# 以立春为界的天干地支 (注,如果没有传参,或者传false,是以立春为界的。刚好和getLunarYear相反)
77+
yTG = day.getYearGZ()
78+
print("以立春为界的年干支", Gan[yTG.tg] + Zhi[yTG.dz])
79+
print("以立春为界的生肖:", ShX[yTG.dz])
80+
81+
#月干支
82+
mTG = day.getMonthGZ()
83+
print("月干支", Gan[mTG.tg] + Zhi[mTG.dz])
84+
85+
#日干支
86+
dTG = day.getDayGZ()
87+
print("日干支", Gan[dTG.tg] + Zhi[dTG.dz])
88+
89+
#时干支
90+
for hour in range(24):
91+
# 第一个参数为该天的天干,第二个参数为小时
92+
hTG = sxtwl.getShiGz(dTG.tg, hour)
93+
print("%d时天干地支:"%(hour), Gan[hTG.tg] + Zhi[hTG.dz])
94+
95+
96+
# 当日是否有节气
97+
if day.hasJieQi():
98+
print('节气:%s'% jqmc[day.getJieQi()])
99+
#获取节气的儒略日数
100+
jd = day.getJieQiJD()
101+
# 将儒略日数转换成年月日时秒
102+
t = sxtwl.JD2DD(jd )
103+
104+
# 注意,t.s是小数,需要四舍五入
105+
print("节气时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))
106+
else:
107+
print("当天不是节气日")
108+
109+
```
110+
111+
4. 获取某日的前几天或者后几天的信息 (可以用到很多场景中)
112+
```
113+
# 获取某天的后面几天
114+
num = 1 #你喜欢写多少天 也多少天,可以写负数,相当于往前
115+
day = day.after(num) #获取num天后的日信息
116+
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
117+
print(s)
118+
119+
# 同上
120+
day = day.before(num)
121+
s = "公历:%d年%d月%d日" % (day.getSolarYear(), day.getSolarMonth(), day.getSolarDay())
122+
print(s)
123+
```
124+
125+
126+
5. 获取一年中的闰月
127+
```
128+
# 获取一年中的闰月
129+
year = 2020
130+
month = sxtwl.getRunMonth(year)
131+
if month >= 0:
132+
print("%d年的闰月是%d"%(year, month) )
133+
else:
134+
print("没有闰月")
135+
```
136+
137+
6. 获取一个农历月的天数
138+
```
139+
# 一个农历月的天数
140+
year = 2020 #农历年
141+
month = 4 #农历月
142+
isRun = False #是否是闰月
143+
daynum = sxtwl.getLunarMonthNum(year, month, isRun)
144+
print("农历%d年%s%d月的天数:"%(year, '闰'if isRun else '', month), daynum)
145+
146+
```
147+
148+
7. 儒略日数与公历的互转
149+
```
150+
#儒略日数转公历
151+
jd = sxtwl.J2000
152+
t = sxtwl.JD2DD(jd )
153+
154+
#公历转儒略日
155+
jd = sxtwl.toJD(t)
156+
```
157+
158+
159+
8. 查找某日之前或者之后的节气
160+
```
161+
# 查找某日前后的节气,此例为之后,之前把after替换成before
162+
while True:
163+
# 这里可以使用after或者before,不用担心速度,这里的计算在底层仅仅是+1这么简单
164+
day = day.after(1)
165+
# hasJieQi的接口比getJieQiJD速度要快,你也可以使用getJieQiJD来判断是否有节气。
166+
if day.hasJieQi():
167+
print('节气:%s'% jqmc[day.getJieQi()])
168+
#获取节气的儒略日数, 如果说你要计算什么时间的相距多少,直接比对儒略日要方便,相信我。
169+
jd = day.getJieQiJD()
170+
171+
# 将儒略日数转换成年月日时秒
172+
t = sxtwl.JD2DD(jd )
173+
174+
# 注意,t.s是小数,需要四舍五入
175+
print("节气时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))
176+
177+
break
178+
```
179+
180+
9. 四柱反查 (好像还有bug,待修复)
181+
```
182+
# 四注反查 分别传的是年天干,月天干,日天干,时天干, 开始查询年,结束查询年 返回满足条件的儒略日数
183+
jds = sxtwl.siZhu2Year(yTG, mTG, dTG, sxtwl.GZ(7, 5), 2003, 2029);
184+
for jd in jds:
185+
t = sxtwl.JD2DD(jd )
186+
print("符合条件的时间:%d-%d-%d %d:%d:%d"%(t.Y, t.M, t.D, t.h, t.m, round(t.s)))
187+
188+
```
189+
190+
### 联系作者及广告
191+
192+
作者微信二维码:
193+
![微信二维码](https://gitee.com/yuangu/sxtwl/raw/master/doc/img/WechatIMG5.jpeg)
194+
195+
请您扫码支持作者的海棠万年历(广告):
196+
![海棠万年历](https://gitee.com/yuangu/sxtwl/raw/master/doc/img/qrcode_for_gh_d48e82be45fb_430.jpg)
197+
198+
如果您想请作者喝杯奶茶,扫如下微信支付码:
199+
![微信收款](https://gitee.com/yuangu/sxtwl/raw/master/doc/img/WechatIMG7.jpeg)
200+
Platform: UNKNOWN
201+
Description-Content-Type: text/markdown

python/sxtwl.egg-info/SOURCES.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
README.md
2+
setup.py
3+
sxtwl.py
4+
sxtwl_wrap.cxx
5+
src/JD.cpp
6+
src/SSQ.cpp
7+
src/day.cpp
8+
src/eph.cpp
9+
src/sxtwl.cpp
10+
sxtwl.egg-info/PKG-INFO
11+
sxtwl.egg-info/SOURCES.txt
12+
sxtwl.egg-info/dependency_links.txt
13+
sxtwl.egg-info/top_level.txt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

python/sxtwl.egg-info/top_level.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
_sxtwl
2+
sxtwl

0 commit comments

Comments
 (0)