中国假期、A股日历及八字算命——ChnCal日历小工具介绍

ChnCal是一个python库,目前功能包括:中国节假日工作日查询和判断、沪深A股交易日历查询,公历农历转化、生肖八字查询等。ChnCal基于chinese_calendar(https://github.com/LKI/chinese-calendar)改写。

安装: pip install chncal --upgradegithub: https://github.com/Genlovy-Hoo/chncalpypi:https://pypi.org/project/chncal/

部分API简介:

1. 中国假期和工作日等相关函数,见chinese_calendar文档,chncal在chinese_calendar的基础上增加了2001—2003年的国家假期安排数据。同名函数的日期参数均改为可传字符串,最后一个日期参数可不传(默认使用当天日期)。

2. 沪深A股交易日相关函数

from chncal import *# 判断日是否交易日>>> is_tradeday(date=20220828) # date不传则默认为当天Out[]: False# 最近的一个交易日>>> get_recent_tradeday(date='20220828')Out[]: datetime.date(2022, 8, 29)# 给定日期后的第n个交易日>>> get_next_nth_tradeday(date='20220828', n=5) # n可为负数Out[]: datetime.date(2022, 9, 2)# 获取两个日期间的交易日列表>>> get_trade_dates(20220801, 20220820)Out[]: [datetime.date(2022, 8, 1),...  datetime.date(2022, 8, 2),......  datetime.date(2022, 8, 19)]

3. 农历公历转换函数

# 公历日期转农历日期,date不传则默认为当天>>> gen2lun(date=19920718) # 若返回日期以'_'结束,则表示闰月日期Out[]: '1992.06.19'# 农历日期转公历日期>>> lun2gen(date='1994.12.01') # 农历转公历日期传入格式必须为'%Y.%m.%d'Out[]: '1995.01.01'# 公历日期转化为干支纪年法>>> gen2gz(20220826)Out[]: '壬寅(虎)年,戊申(猴)月,辛亥(猪)日'

4. 天干地支八字算命相关函数

# 根据公时间获取八字>>> get_bazi('19920514 18:30')Out[]: '壬申(猴)年,乙巳(蛇)月,庚寅(虎)日,乙酉(鸡)时'# 根据农历时间获取八字>>> get_bazi_lunar('2023.02.01 08:00', run=True) # run设置是否闰月Out[]:'癸卯(兔)年,乙卯(兔)月,己卯(兔)日,戊辰(龙)时'# 称命函数,根据公历时间称命,返回结果包括重量(3.5表示三两五钱)、# 八字、袁天罡称命歌以及八字对应年月日时辰分别的重量>>> fate_weight('1995.01.01 12:00')Out[]: {'weight': 3.5,...     'bazi': '甲戌(狗)年,丙子(鼠)月,壬辰(龙)日,丙午(马)时',...     'song': '平生福量不周全,祖业根基觉少传。营业生涯宜守旧,时来衣食胜从前。',...     'weight_split': (1.5, 0.5, 0.5, 1.0)}# 根据农历时间称命>>> fate_weight_lunar('2023.02.01', run=True)Out[]: {'weight': 4.0,...     'bazi': '癸卯(兔)年,乙卯(兔)月,己卯(兔)日,甲子(鼠)时',...     'song': '生平衣禄是绵长,件件心中自主张。前面风霜多受过,后来必定享安康。',...     'weight_split': (1.2, 0.7, 0.5, 1.6)}

数据来源及说明:

1. 农历日历数据来自香港天文台:https://www.hko.gov.hk/tc/gts/time/conversion1_text.htm

2. 时辰的八字采用整点划分,未精确到分和秒,跟寿星天文历的结果会有差别(http://www.nongli.net/sxwnl/)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值