跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python chinese-calendar 库使用指南

chinese-calendar 是一个 Python 库,提供 2004 至 2026 年中国法定节假日及调休数据。支持 pip 安装,通过 is_holiday 和 is_workday 函数判断日期状态。功能涵盖节假日列表获取、调休日检测、工作日统计及 24 节气查询。适用于企业考勤系统、财务利息计算等场景。生产环境建议锁定版本并处理异常。

热情发布于 2026/3/30更新于 2026/5/2722 浏览

chinese-calendar 库作为专业的 Python 节假日解决方案,为开发者提供了从 2004 年到 2026 年的完整中国节假日数据支持,让节假日计算变得简单高效。

安装与配置

使用 pip 命令快速安装 chinesecalendar 库:

pip install chinesecalendar

或者从源码安装最新版本:

git clone https://github.com/jaywcjlove/chinese-calendar
cd chinese-calendar
pip install .

基础功能体验

导入库并开始使用:

import datetime
from chinese_calendar import is_holiday, is_workday

# 判断特定日期状态
test_date = datetime.date(2024, 10, 1)
print(f"2024 年国庆节是节假日:{is_holiday(test_date)}")
print(f"2024 年国庆节是工作日:{is_workday(test_date)}")

功能特性

计算维度传统方案chinese-calendar 方案
数据准确性依赖人工更新基于官方通知
开发效率需要大量编码一行代码即可判断
维护成本持续人工维护自动更新零维护
覆盖范围有限年份数据2004-2026 完整数据

核心功能

  • 节假日识别:准确判断法定节假日
  • 工作日计算:智能识别调休安排
  • 状态查询:获取日期详细状态信息
  • 节假日列表:获取指定时间段所有节假日
  • 调休日检测:识别补班调休情况
  • 工作日统计:计算时间段内工作日数量

应用场景

企业考勤系统集成

在考勤系统中集成节假日判断:

from chinese_calendar import is_workday
import datetime

 :
     ():
        
         is_workday(check_date)

     ():
        
        workday_count = 
        current_date = start_date
         current_date <= end_date:
             is_workday(current_date):
                workday_count += 
            current_date += datetime.timedelta(days=)
         workday_count
class
AttendanceCalculator
def
validate_work_date
self, check_date
"""验证日期是否为有效工作日"""
return
def
get_workday_count
self, start_date, end_date
"""计算工作日总数"""
0
while
if
1
1
return

财务利息计算应用

基于工作日计算财务利息:

def calculate_business_day_interest(principal, rate, start_date, days):
    """按工作日计算利息"""
    total_interest = 0
    current_date = start_date
    for _ in range(days):
        if is_workday(current_date):
            daily_interest = principal * rate / 365
            total_interest += daily_interest
        current_date += datetime.timedelta(days=1)
    return total_interest

高级用法

节假日数据分析

获取节假日分布统计:

from chinese_calendar import get_holidays

def analyze_year_holidays(year):
    """分析年度节假日模式"""
    start = datetime.date(year, 1, 1)
    end = datetime.date(year, 12, 31)
    holidays = get_holidays(start, end, include_weekends=False)
    return {
        'year': year,
        'holiday_count': len(holidays),
        'holiday_dates': [h.strftime('%m-%d') for h in holidays]
    }

24 节气功能支持

除了法定节假日,还支持传统 24 节气:

from chinese_calendar import get_solar_terms

# 获取年度节气信息
solar_terms = get_solar_terms(
    datetime.date(2024, 1, 1),
    datetime.date(2024, 12, 31)
)

问题处理

日期范围限制处理

当查询超出支持年份的日期时:

def safe_check_holiday(date_to_check):
    """安全检查节假日状态"""
    try:
        return is_holiday(date_to_check)
    except NotImplementedError:
        # 处理超出范围的日期
        return False

版本更新策略

确保节假日数据准确性:

# 每年年底更新获取最新数据
pip install -U chinesecalendar

最佳实践

  • 版本锁定:在生产环境中固定版本号
  • 异常处理:对日期范围进行验证检查
  • 缓存优化:对频繁查询日期进行本地缓存
  • 测试覆盖:针对关键节假日编写测试用例

注意事项

  • 支持年份:2004 年至 2026 年
  • 数据来源:官方通知
  • 更新周期:每年 11 月前后发布新版本
  • 功能限制:当前版本专注于中国法定节假日,不支持其他国家或地区节假日,超出年份范围会抛出异常

通过掌握 chinese-calendar 库的使用技巧,开发者可以轻松应对中国节假日计算的各类复杂场景,显著提升开发效率和系统可靠性。

目录

  1. 安装与配置
  2. 基础功能体验
  3. 判断特定日期状态
  4. 功能特性
  5. 核心功能
  6. 应用场景
  7. 企业考勤系统集成
  8. 财务利息计算应用
  9. 高级用法
  10. 节假日数据分析
  11. 24 节气功能支持
  12. 获取年度节气信息
  13. 问题处理
  14. 日期范围限制处理
  15. 版本更新策略
  16. 每年年底更新获取最新数据
  17. 最佳实践
  18. 注意事项
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 麒麟 V10 ARM64 环境下部署 WebLogic 12.2.1.4 实战
  • Python 全流程图文安装与配置指南
  • 2024 年 AI 视觉大模型技术解析与自监督学习综述
  • 纯前端 PNG/JPG 转 PDF 工具实现方案
  • Windows 本地大模型工具链安装指南:Ollama + llama.cpp + LLaMA Factory
  • Spring Cloud Config 与 Apollo 配置中心架构深度对比与实战指南
  • C++ Qt 网络编程:QUdpSocket、QTcpSocket 与 Http
  • C++ 伸展树与红黑树原理及实现详解
  • Linux 基础使用与 Java 项目部署实战
  • cann-recipes-train 实战:昇腾平台 DeepSeek-R1 与 Qwen2.5 强化学习优化
  • 自然语言处理在金融领域的应用与实战
  • gRPC 跨语言通信实战:C++ 服务端与 C# 客户端搭建
  • AI 前端技术解析:从概念到实战进阶路线
  • Django Web 框架实战:从零构建产品管理系统
  • Java 后端 Web API 开发实战:从架构到部署
  • Obsidian AI Agent 配置指南:Claudian 与 Obsidian Skills
  • 大模型 RAG 技术详解:架构、优势与实战案例
  • 无人机避障新思路:基于 APF-RRT*的高效轨迹规划与 Python 实现
  • 自然语言处理在法律领域的应用与实战
  • C++ spdlog 日志库编译与安装详解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online