利用Python计算农历日期

简介: 利用Python计算农历日期

利用Python计算农历日期
今天在“俊红的数据分析之路”公众号看到一篇计算农历日期的文章,于是跟着练习一下。运行环境:

  • PyCharm 2020.1
  • macOS Monterey Version 12.3.1
  • Python 3.9.9
  • Jupyter notebook

现整理成文分享如下:

首先安装第三方开源模块,在命令行输入如下命令:

pip install zhdate

使用方法:
1.1 阳历与农历日期的转换
在交互式环境输入如下命令:

from datetime import ZhDate

# 新建农历2022年二月初四的日期对象
lunar_date = ZhDate(2022, 2, 4)
# 输出农历日期的字符串
print(lunar_date)

结果如下:

农历202224

在交互式环境输入如下命令:

t_date1 = lunar_date.to_datetime()   # 从农历日期转换为阳历日期
t_date1

结果如下:

Out[22]: datetime.datetime(2022, 3, 6, 0, 0)

在交互式环境中输入如下命令:

from datetime import datetime

solar_date = datetime(2022, 4, 4)
solar_to_lunar_date = ZhDate.from_datetime(solar_date) # 从阳历日期转换为农历日期
print(solar_to_lunar_date)

结果如下:

农历202234

1.2 闰月
在交互式环境中输入如下命令:

# 新建农历 2020415日
unar_date1 = ZhDate(2020, 4, 15) 
print(lunar_date1.to_datetime())

结果如下:

2020-05-07 00:00:00

1.3 其他
中文输出, Jupyter notebook下输入如下命令:

# 中文输出
from zhdate import ZhDate
from datetime import datetime
solar_date = datetime(2022, 4, 1) # 新建一个阳历日期
solar_to_lunar_date = ZhDate.from_datetime(solar_date)  # 阳历日期转换农历日期
print(solar_to_lunar_date.chinese())  # 输出中文农历日期

结果如下:

二零二二年三月初一 壬寅年 (虎年)

当天的农历日期, 输入如下命令:

lunar_today = ZhDate.today()
print(lunar_today)

结果如下:

农历202234

案例:计算节日距离天数

距离“五一”劳动节还有多少天,输入如下命令:

from datetime import datetime
today = datetime.now()  # 今天的日期
today_str = today.strftime('%Y-%m-%d') # 设定日期格式年月日
May_1st = datetime(2022, 5, 1) # 五一劳动节
dural_days = May_1st.toordinal() - today.toordinal()
print(f'今天是{today_str}距离五一劳动节还有{dural_days}天')

结果如下:

今天是2022-04-04距离五一劳动节还有27

根据农历日期,计算距离端午节还有多少天,结合zhdate库,代码如下:

# 计算农历节日还有多少天
from datetime import datetime
from zhdate import ZhDate
today = datetime.now()  # 今天的日期
today_str = today.strftime('%Y-%m-%d') # 设定日期格式年月日
dragon_boat_Day = ZhDate(2022, 5, 5).to_datetime() #转换成阳历日期
dural_days = dragon_boat_Day.toordinal() - today.toordinal()
print(f'今天是{today_str}距离端午节还有{dural_days}天')

结果如下:

今天是2022-04-04距离端午节还有60

距离中秋节还有多少天,代码如下:

middle_autumn_Day = ZhDate(2022, 8, 15).to_datetime() #转换成阳历日期
dural_days = middle_autumn_Day.toordinal() - today.toordinal()
print(f'今天是{today_str}距离中秋节还有{dural_days}天')

结果如下:

今天是2022-04-04距离中秋节还有159

参考资料:【1】百度百科-农历 【2】github

相关文章
|
2天前
|
机器学习/深度学习 并行计算 大数据
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
18 10
|
2天前
|
索引 Python
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧1
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
22 4
|
1天前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
|
1天前
|
Python
Python编程获取当前日期的所属周日期信息
Python编程获取当前日期的所属周日期信息
|
10天前
|
数据挖掘 Python
【Python】应用:pyproj地理计算库应用
这篇博客介绍了 `pyproj` 地理计算库的应用,涵盖地理坐标系统转换与地图投影。通过示例代码展示了如何进行经纬度与UTM坐标的互转,并利用 `pyproj.Geod` 计算两点间的距离及方位角,助力地理数据分析。 安装 `pyproj`:`pip install pyproj`。更多内容欢迎关注本博客,一起学习进步! Pancake 🍰 不迷路。😉*★,°*:.☆( ̄▽ ̄)/$:*.°★* 😏
16 1
|
1天前
|
IDE 开发工具 iOS开发
Python编程案例:中文金额转换并计算
Python编程案例:中文金额转换并计算
|
12天前
|
数据挖掘 索引 Python
PYTHON 判断入参日期是周几
PYTHON 判断入参日期是周几
27 0
|
5月前
|
安全 Python
Python如何使用datetime模块进行日期和时间的操作
Python如何使用datetime模块进行日期和时间的操作
54 1
|
Python
python时间和日期操作(datetime和monthrange,timedelta)
python时间和日期操作(datetime和monthrange,timedelta)
164 0