# Kylin Holiday

Kylin 法定节假日管理包 — 为防沉迷系统、薪酬计算等提供节假日时段判断。

## 功能特性

- **法定节假日管理**：维护国务院公布的法定节假日数据
- **节假日判断**：判断指定日期是否为法定节假日
- **调休处理**：法定节假日包含调休日期，补班日不视为节假日
- **缓存优化**：节假日数据缓存 1 天（`cache_ttl = 86400`）
- **时区支持**：统一使用 Asia/Shanghai 时区
- **数据更新**：支持 API 自动获取 / 本地文件导入

## 安装

```bash
composer require kylin/holiday
```

## 配置发布

```bash
php artisan vendor:publish --tag=kylin-holiday-config
php artisan vendor:publish --tag=kylin-holiday-migrations
php artisan migrate
php artisan db:seed --class=Holiday2026Seeder
```

## 配置说明

```php
// config/kylin-holiday.php
return [
    'timezone' => 'Asia/Shanghai',  // 时区
    'cache_ttl' => 86400,           // 缓存时间（秒，1 天）
];
```

## 使用示例

```php
use Kylin\Holiday\Services\HolidayService;

$holidayService = app(HolidayService::class);

// 判断是否为节假日
$isHoliday = $holidayService->isHoliday('2026-10-01'); // true

// 获取节假日列表
$holidays = $holidayService->getHolidays(2026);

// 判断是否为法定节假日（含调休）
$isLegalHoliday = $holidayService->isLegalHoliday('2026-10-03'); // true

// 判断是否为工作日（排除节假日和周末，含调休补班）
$isWorkday = $holidayService->isWorkday('2026-10-10'); // true
```

## 数据更新

```bash
# 从 API 自动获取节假日数据
php artisan holiday:update

# 从本地文件导入
php artisan holiday:update --file=holidays.json
```

## 法律合规

本包严格遵循以下法律法规和行业标准：

- 《全国年节及纪念日放假办法》（2024 修订）
- 《关于进一步严格管理 切实防止未成年人沉迷网络游戏的通知》（2021）
- 《中华人民共和国未成年人保护法》（2021）
- 《中华人民共和国劳动法》（2018 修订）
- 《职工带薪年休假条例》（2008）

详见 [LEGAL.md](./LEGAL.md)。

## 依赖

- PHP ^8.5
- Laravel ^13.0

## 许可证

私有软件，未经授权禁止使用。