# holiday-calendar
**Repository Path**: cg-zhou/holiday-calendar
## Basic Information
- **Project Name**: holiday-calendar
- **Description**: 标准化的节假日数据集(JSON格式),包含法定假期、调休安排等信息。 | Standardized JSON dataset of holidays and working calendar for regions.
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 9
- **Forks**: 2
- **Created**: 2025-01-17
- **Last Updated**: 2026-03-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# holiday-calendar 假期日历
> [English Documentation](README.en.md)
[](https://www.npmjs.com/package/holiday-calendar)
[](https://github.com/cg-zhou/holiday-calendar/blob/main/LICENSE)
标准化的节假日数据集(JSON格式),提供各个地区的法定节假日和调休安排信息。
## 示例
查看 [在线示例](https://cg-zhou.github.io/holiday-calendar/examples) 或 [示例代码](/examples)。
## 概述
本仓库集中存储以下数据:
- 📅 法定节假日
- 🏢 调休工作日
## 数据来源
数据来源于各地区官方发布的节假日安排:
- 中国(CN):
- [国务院办公厅](http://www.gov.cn)关于节假日安排的通知
- 更新频率:每年更新,通常在上一年末发布下一年安排
- 日本(JP):
- [内閣府](https://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)「国民の祝日」
- 更新频率:每年更新,通常提前一年发布
## 安装
```bash
npm install holiday-calendar
```
## 数据格式
所有数据以 JSON 格式存储,便于集成:
### 索引文件
位于 `/data/index.json`,包含所有地区的年份范围信息:
``` json
{
"regions": [
{
"name": "CN",
"startYear": 2002,
"endYear": 2026
},
{
"name": "JP",
"startYear": 2000,
"endYear": 2026
}
]
}
```
### 日期类型
- `public_holiday`: 法定节假日
- `transfer_workday`: 调休工作日(因节假日调整而需要补班的日期)
``` json
{
"year": 2026,
"region": "CN",
"dates": [
{
"date": "2026-01-01",
"name": "元旦",
"name_cn": "元旦",
"name_en": "New Year's Day",
"type": "public_holiday"
},
{
"date": "2026-01-04",
"name": "元旦补班",
"name_cn": "元旦补班",
"name_en": "New Year's Day Workday",
"type": "transfer_workday"
}
]
}
```
## 使用方法
```javascript
// 导入包
const HolidayCalendar = require('holiday-calendar');
// 创建实例
const calendar = new HolidayCalendar();
// 获取索引信息
calendar.getIndex().then(index => {
console.log('支持的地区:', index.regions);
});
// 获取某天的日期信息
calendar.getDateInfo('CN', '2026-01-01').then(dateInfo => {
if (dateInfo) {
console.log(`${dateInfo.date} 是 ${dateInfo.name_cn}`);
}
});
// 获取指定年份的所有日期
calendar.getDates('CN', 2026).then(dates => {
console.log('2026年日期:', dates);
});
// 使用过滤器
calendar.getDates('CN', 2026, {
type: 'public_holiday', // 按类型过滤:'public_holiday'(法定节假日) 或 'transfer_workday'(调休工作日)
startDate: '2026-01-01', // 按开始日期过滤
endDate: '2026-12-31' // 按结束日期过滤
}).then(dates => {
console.log('过滤后的日期:', dates);
});
// 判断是否为工作日,工作日包括 1)非法定节假日的周一至周五,2)调班的周末
calendar.isWorkday('CN', '2026-01-01').then(isWorkday => {
console.log('是否为工作日:', isWorkday); // false (元旦节假日)
});
// 判断是否为假期,假期包括 1)法定节假日,2)非调班的周末
calendar.isHoliday('CN', '2026-01-04').then(isHoliday => {
console.log('是否为假期:', isHoliday); // false (元旦调休工作日)
});
```
## 数据访问
原始 JSON 文件可通过以下方式访问:
1. unpkg:
```
https://unpkg.com/holiday-calendar/data/CN/2026.json
```
2. jsDelivr CDN:
```
https://gcore.jsdelivr.net/gh/cg-zhou/holiday-calendar@main/data/CN/2026.json
```
### 浏览器 (CDN)
```html
```
> **重要提示**:对于中国大陆用户,考虑到 CDN 服务的稳定性,建议将 `data` 目录下的 JSON 数据部署到您自己的服务器上,以确保更可靠的访问体验。
## 链接与文档
- GitHub: [cg-zhou/holiday-calendar](https://github.com/cg-zhou/holiday-calendar)
- Gitee: [cg-zhou/holiday-calendar](https://gitee.com/cg-zhou/holiday-calendar)
- [贡献指南](CONTRIBUTING.md)
- [更新日志](CHANGELOG.md)
- [MIT 许可证](LICENSE)
---
## 免责声明
本项目的节假日数据来源于官方发布,但请注意:
1. **政策依赖性**:节假日安排依赖于国家政策,没有固定规则,每年可能有所不同。
2. **潜在变更**:在特殊情况下,官方可能会对已发布的节假日安排进行临时调整或补充,本仓库的数据更新可能存在滞后。
因此,在使用本数据时,请务必结合官方最新发布的信息进行核对,以确保准确性。