Skip to main content

lunarz - 农历日历工具包

lunarz 是一个功能强大的农历日历工具包,提供干支、节气、斋日等传统农历信息计算功能,专为需要处理中国传统历法功能的开发者设计。

功能特性

  • 干支系统:准确计算年、月、日的干支
  • 🌿 节气信息:提供当前节气状态及距离节气的天数
  • 🕉️ 斋日计算:识别十斋日及距离下一个斋日的天数和名称
  • 🌙 农历日期:精确显示农历年月日信息

安装方法

pip install lunarz

使用指南

Python API

from lunarz import LunarCalendar
import datetime

# 创建指定日期的农历日历
date = datetime.date(2025, 6, 15)  # 公历日期
lc = LunarCalendar(date)

# 获取农历日期
print(lc.get_lunar_day())  # 输出: 五月廿一

# 获取干支信息
print(lc.get_ganzhi())
# 输出: {'year': '乙巳', 'month': '壬午', 'day': '丙辰'}

# 获取节气信息
print(lc.get_solar_term_info())
# 输出: "芒种后9天,6天后夏至"

# 获取斋日信息
print(lc.get_fasting_info())
# 输出: "3天后廿三" 或 "今日斋日"

命令行工具

# 查询今日完整信息
lunarz

# 查询指定日期
lunarz --date 2025-12-01

# 查询特定字段
lunarz --date 2025-12-01 --field ganzhi  # 输出: 乙巳 丁亥 乙巳
lunarz --field fasting                    # 输出: 今日斋日 或 3天后初八
lunarz --field solar_term                # 输出: 小雪后5天,10天后大雪

功能详解

1. 干支系统 (get_ganzhi)

返回包含三个键的字典:

  • year: 年干支 (如 "甲辰")
  • month: 月干支 (如 "己巳")
  • day: 日干支 (如 "丙子")

2. 节气信息 (get_solar_term_info)

提供当前位置的节气信息,格式为:

  • 当前是节气日:直接返回节气名称
  • 在节气之间:返回上一个节气后X天,Y天后下一个节气
  • 靠近节气:返回 "X天后节气名" 或 "节气后X天"

3. 斋日信息 (get_fasting_info)

提供斋日信息,返回格式:

  • 今日斋日: 当天是十斋日
  • X天后Y: 距离本月下一个斋日X天(Y为农历日期名称)
  • X天后初一: 本月无剩余斋日,计算到下月初一

4. 农历日期 (get_lunar_day)

返回中文农历日期

  • 示例:十月廿三、冬月初一、腊月廿九

Release files for lunarz 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lunarz 0.0.3
File Size Uploaded
lunarz-0.0.3.tar.gz 5.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lunarz 0.0.3
File Interpreter ABI Platform
lunarz-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 kB

Release files / lunarz-0.0.3.tar.gz

Download URL lunarz-0.0.3.tar.gz
Size 5.2 kB
Tags Source
SHA-256 checksum
How to use checksums
600c6544d3894639514754a2fce955b2278956e81125ff0b96fb016602dc124c
BLAKE2b-256 checksum
How to use checksums
907ddd99e0f4e4f2e717f128f5e12e789c3061b12bfe00fa07420d97f7253779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.12

Release files / lunarz-0.0.3-py3-none-any.whl

Download URL lunarz-0.0.3-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
83cf0ffe2584c5e753b7aadd178a9442cbe512dfa195a6379a83ba5a7499e0b5
BLAKE2b-256 checksum
How to use checksums
dd94b7c711a97abc46a506c3f315c093638b8d97009fe70d9661635d9157e84f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.12

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page