n11t/holidays

计算节日的服务

1.1.0 2019-03-05 08:46 UTC

This package is auto-updated.

Last update: 2024-09-06 09:58:22 UTC


README

pipeline status coverage report

节日

面向对象的服务,用于计算给定日期之间的节假日,或检查给定日期是否为节假日。可以通过自己的提供者进行扩展。

安装

通过 Composer 安装(推荐)

composer require n11t/holidays

使用

<?php
require_once __DIR__ . '/vendor/autoload.php';

$calculator = new \N11t\Holidays\Country\Germany();

// Check if date is holiday
$calculator->isHoliday(new \DateTime('2018-12-24')); // True

// Get Holidays in Range
$calculator->between(new \DateTime('2018-03-26'), new \DateTime('2018-04-02')); // 2018-03-30, 2018-04-02

// Extend calculation by own providers
$calculator->isHoliday(new \DateTime('2018-03-01')); // False
$calculator->addProvider(new FirstOfMarchProvider());
$calculator->isHoliday(new \DateTime('2018-03-01')); // True

class FirstOfMarchProvider implements \N11t\Holidays\Calculator\Provider\HolidayProvider {
    public function getHolidays(int $year): \N11t\Holidays\Entity\HolidayCollection
    {
        $holidays = [
            new \N11t\Holidays\Entity\Holiday('2018-03-01', 'Funny Holiday')
        ];

        return new \N11t\Holidays\Entity\HolidayCollection(...$holidays);
    }
}

提示:始终使用 \N11t\Holidays\HolidayCalculator 接口作为类型提示。

支持的国家/地区

目前支持德国及其州。欢迎贡献力量。