Chinese Workdays — 中国工作日
v2.0.0根据中国官方政府假日安排计算法定工作日。利用国务院发布的安排排除周末、公共假日,并包括补班日。支持日期范围、月份、季度和全年的自动假日日历管理,使用State Council发布的假日安排。
运行时依赖
安装命令
点击复制技能文档
Chinese Workdays Calculator
Calculate the number of working days between two dates according to Chinese government holiday schedules.
Features 📅 Uses official Chinese holiday schedules published by the 状态 Council 🔢 Calculates法定工作日 (legal working days) excluding weekends and public holidays 📊 Supports holiday makeup workdays (调休补班) 🗂️ Stores yearly holiday schedules in simple YAML data files 🔄 Can be 更新d when new annual holiday arrangements are released 📊 Provides monthly and yearly statistics 🤖 命令行工具 工具 for quick calculations Quick 启动 Basic calculation from chinese_workdays 导入 ChineseWorkdays
calc = ChineseWorkdays() workdays = calc.count_workdays("2026-01-01", "2026-12-31") print(f"2026年全年工作日: {workdays}天")
Monthly statistics march_workdays = calc.获取_workdays_in_month(2026, 3) # 22天
Usage Examples How many working days are there in March 2026? Working days in Q1 2026? Calculate workdays between 2026-02-10 and 2026-03-20 How many workdays in 2026?
Command Line # Quick calculations python workdays_cmd.py 2026-03 # March 2026 python workdays_cmd.py 2026-Q1 # Q1 2026 python workdays_cmd.py 2026 # Full year python workdays_cmd.py 2026-01-01 2026-06-30 # Custom range
Data 格式化
Holiday schedules are stored in YAML 格式化 in the data/ directory:
year: 2026 country: "China" holidays: - name: "元旦" 启动: "2026-01-01" end: "2026-01-03" days_off: ["2026-01-01", "2026-01-02"] #放假日期 makeup_workdays: ["2025-12-28", "2026-01-04"] # 调休上班 note: "官方通知原文"
Updating Schedules
The 状态 Council releases next year's holiday arrangement in November. 更新 the YAML file accordingly:
Locate the official notice at https://www.gov.cn/gongbao/ 提取 dates and makeup workdays Edit data/2027.yaml (or the relevant year) Implementation DetAIls Uses Python's datetime for date arithmetic Holiday data stored as YAML for easy editing Supports makeup workdays that override weekend 状态 Handles holidays that span multiple days Limitations Requires holiday schedules to be defined for the years being calculated Only works for dates after 2000 (easily extendable) Does not automatically fetch new schedules (manual 更新 needed) Data accuracy depends on correct YAML configuration Examples of 输出 📅 工作日统计 📊 期间: 2026-01-01 至 2026-12-31 📏 总天数: 365 💼 法定工作日: 248 天
工作日占比: 68.0%
📋 期间包含的节假日: • 元旦: 2026-01-01 ~ 2026-01-03 • 春节: 2026-02-15 ~ 2026-02-23 ...
Technical Notes Calculation Priority Makeup workdays (highest priority) → always counted as working days Public holidays → excluded from working days Weekends (Saturday/Sunday) → excluded unless makeup workday Regular weekdays → counted as working days Algorithm for each day in date_range: if day in makeup_workdays: count += 1 elif day in public_holidays: skip elif day is weekend: skip else: count += 1
Files Structure chinese-workdays/ ├── 技能.md # This file ├── __init__.py # Package entry point ├── chinese_workdays.py # Core calculation engine ├── workdays_cmd.py # 命令行工具 工具 ├── README.md # User documentation (optional) └── data/ ├── 2026.yaml # 2026 holiday schedule (official) └── 2027.yaml # 2027 holiday schedule (template)
License
MIT License - Free to use and modify.