castorland/hu-holidays

Carbon DateTime Library 的匈牙利节假日包装器

1.0.0 2023-07-09 06:24 UTC

This package is auto-updated.

Last update: 2024-09-23 15:20:43 UTC


README

Latest Stable Version Total Downloads GitHub Workflow Status Codecov branch License

Carbon 对美国节日的支持

这扩展了 Carbon 并添加了对匈牙利节日的支持。(感谢 Geoffrey Rose 提供基本想法和代码。)

完整文档

v2.x https://castorland.github.io/hu-holidays/

支持的节假日

  • 新年
  • 圣诞前夜,狂欢节开始
  • 世界文学日
  • 世界宗教日
  • 匈牙利文化日
  • 大屠杀国际纪念日
  • 公民日
  • 谜题解谜师世界日
  • 抗癌世界日
  • 情人节
  • 中国新年开始
  • 灰烬星期三
  • 气象学春天开始
  • 节能日
  • 国际妇女节
  • 国际股票日
  • 1848 年革命纪念日
  • 世界水日
  • 愚人节
  • 耶稣受难日
  • 复活节星期一
  • 世界卫生日
  • 匈牙利诗歌日
  • 地球日
  • 蜜蜂日
  • 劳动节
  • 太阳日
  • 母亲节
  • 鸟类和树木日
  • 国际家庭日
  • 国际男子节
  • 挑战日
  • 儿童节
  • 复活节星期一
  • 世界环境日
  • 玛尔塔节
  • 父亲节
  • 塞梅尔维斯节
  • 月亮日
  • 圣母玛利亚节
  • 国家成立日
  • 欧洲无车日
  • 阿雷达烈士纪念日
  • 地球日
  • 1956 年革命纪念日
  • 秋玫瑰革命
  • 万圣节
  • 亡灵节
  • 黑色星期五
  • 网络星期一
  • 诺贝尔奖设立日
  • 平安夜
  • 圣诞节
  • 圣诞节第二天
  • 新年除夕

要求

使用方法

使用 Composer

composer require castorland/hu-holidays
<?php
require 'vendor/autoload.php';

use Castorland\HUHolidays\Carbon;

不使用 Composer

<?php
require 'path/to/nesbot/Carbon.php';
require 'path/to/castorland/Carbon.php';

use Castorland\HUHolidays\Carbon;

按年份获取节假日

请参阅 文档 了解更多详情

$carbon = Carbon::create(2020, 1, 1);
$holidays = $carbon->getHolidaysByYear('all');

// [
//     {
//         "name": "Újév", // string
//         "date": "2020-01-01 00:00:00", // DateTime object
//         "bank_holiday": true, // boolean
//         "days_away": 0, // int
//     },
//     {
//      "name": "Vízkereszt, a farsang kezdete", // string
//      "date": "2020-01-06 00:00:00", // DateTime object
//      "bank_holiday": false, // boolean
//      "days_away": 5 // int
//     }
//     ...
// ]

按天数获取节假日

请参阅 文档 了解更多详情

$carbon = Carbon::create(2020, 5, 2);

$holidays = $carbon->getHolidaysInDays(300, 'all');
// or
$holidays = $carbon->getHolidaysInDays(300);

// [
//     {
//         "name": "A Nap napja", // string
//         "date": "2020-05-03 00:00:00", // DateTime object
//         "bank_holiday": false, // boolean
//         "days_away": 1 // int
//     }, {
//         "name": "Madarak és Fák Napja", // string
//         "date": "2020-05-10 00:00:00", // DateTime object
//         "bank_holiday": false, // boolean
//         "days_away": 8 // int
//     },
//     ...
// ]

按年份获取节假日

请参阅 文档 了解更多详情

$carbon = Carbon::create(2020, 8, 18);

$holidays = $carbon->getHolidaysInYears(1, 'all');
// or
$holidays = $carbon->getHolidaysInYears(1);

// [
//     {
//      "name": "Az államalapítás ünnepe", // string
//      "date": "2020-08-20 00:00:00", // DateTime object
//      "bank_holiday": true,// boolean
//      "days_away": 2 // int
//     }, {
//      "name": "Európai autómentes nap", // string
//      "date": "2020-09-22 00:00:00", // DateTime object
//      "bank_holiday": false, // boolean
//      "days_away": 35 // int
//     },
//     ...
// ]

获取节假日日期

请参阅 文档 了解更多详情

$carbon = Carbon::create(2020, 1, 1);
$carbon->getBolondokNapjaHoliday();

// {
//    "name": "Bolondok napja",
//    "date": "2020-04-01 00:00:00",
//    "bank_holiday": false
//    "days_away": 91
// }
$carbon->getACivilekNapjaHoliday();
$carbon->getACsaladNemzetkoziNapjaHoliday();
$carbon->getAFoldNapja();
$carbon->getAHoldNapja();
$carbon->getAHolokausztNemzetkoziEmleknapjaHoliday();
$carbon->getAKinaiUjevKezdeteHoliday();
$carbon->getAMagyarKolteszetNapjaHoliday();
$carbon->getAMagyarKulturaNapjaHoliday();
$carbon->getAMehekNapjaHoliday();
$carbon->getAMeteorologiaiTavaszKezdeteHoliday();
$carbon->getAMunkaUnnepeHoliday();
$carbon->getANapNapjaHoliday();
$carbon->getANobelDijAlapitasanakNapjaHoliday();
$carbon->getAnyakNapjaHoliday();
$carbon->getApakNapjaHoliday();
$carbon->getAVallasokVilagnapjaHoliday();
$carbon->getAVilagirodalomNapjaHoliday();
$carbon->getAVizVilagnapjaHoliday();
$carbon->getAz1848asForradalomUnnepeHoliday();
$carbon->getAz1956osForradalomUnnepeHoliday();
$carbon->getAzAllamalapitasUnnepeHoliday();
$carbon->getAzAradiVertanukEmleknapjaHoliday();
$carbon->getAzEgeszsegVilagnapjaHoliday();
$carbon->getBlackFridayHoliday();
$carbon->getBolondokNapjaHoliday();
$carbon->getCyberMondayHoliday();
$carbon->getEnergiatakarekossagiVilagnapHoliday();
$carbon->getEuropaiAutomentesNapHoliday();
$carbon->getFoldunkertVilagnapHoliday();
$carbon->getGyerenapHoliday();
$carbon->getHalottakNapjaHoliday();
$carbon->getHamvazoszerdaHoliday();
$carbon->getHusvetHetfoHoliday();
$carbon->getKaracsonyHoliday();
$carbon->getKaracsonyMasnapHoliday();
$carbon->getKihivasNapjaHoliday();
$carbon->getKornyezetvedelmiVilagnapHoliday();
$carbon->getMadarakEsFakNapjaHoliday();
$carbon->getMedardNapjaHoliday();
$carbon->getMindenszentekHoliday();
$carbon->getNagyboldogasszonyNapjaHoliday();
$carbon->getNagypentekHoliday();
$carbon->getNemzetkoziFerfinapHoliday();
$carbon->getNemzetkoziPiNapHoliday();
$carbon->getNonapHoliday();
$carbon->getOszirozsasForradalomHoliday();
$carbon->getPunkosdHetfoHoliday();
$carbon->getRakellenesVilagnapHoliday();
$carbon->getRejtvenyfejtokVilagnapjaHoliday();
$carbon->getSemmelweisNapHoliday();
$carbon->getSzentesteHoliday();
$carbon->getSzilveszterHoliday();
$carbon->getUjevHoliday();
$carbon->getVizkeresztaFarsangKezdeteHoliday();

isHoliday()

请参阅 文档 了解更多详情

检查日期是否为节假日。返回 boolean

$carbon = new Carbon();
$carbon = Carbon::create(2018, 12, 25);
$carbon->isHoliday(); // bool (true)

isBankHoliday()

请参阅 文档 了解更多详情

检查日期是否为银行假日以及观察该日期。例如,如果节假日落在星期日,则节假日将在第二天(星期一)观察。注意:银行假日仅为星期一至星期五。始终在周末的节假日不被视为银行假日。此外,周六的银行假日也不在之前星期五观察。返回 boolean

$carbon = Carbon::create(2020, 1, 1); // Újév - Wednesday
$carbon->isBankHoliday(); // boolean (true)

$carbon = Carbon::create(2020, 1, 2);
$carbon->isBankHoliday(); // boolean (false)

$carbon = Carbon::create(2020, 03, 15); // Az 1848-as forradalom ünnepe
$carbon->isBankHoliday(); // boolean (false)

$carbon = Carbon::create(2018, 12, 25); // Karácsony - Tuesday
$carbon->isBankHoliday(); // boolean (true)

$carbon = Carbon::create(2016, 12, 25); // Karácsony - Sunday
$carbon->isBankHoliday(); // boolean (false)

$carbon = Carbon::create(2016, 12, 26); // Karácsony Másnap - Monday
$carbon->isBankHoliday(); // boolean (true)

$carbon = Carbon::create(2021, 12, 25); // Karácsony - Saturday
$carbon->isBankHoliday(); // boolean (false)

$carbon = Carbon::create(2021, 12, 24); // Szenteste - Friday
$carbon->isBankHoliday(); // boolean (false)

获取假日名称

查看更多详情,请参阅文档

如果日期是假日,则返回名称。返回类型为

$carbon = Carbon::create(2018, 12, 31);
$carbon->getHolidayName(); // Szilveszter

添加自定义假日

查看更多详情,请参阅文档

$carbon = new Carbon();
$carbon->addHoliday([
    'name' => "A kockásfülű nyúl kezdete",
    'date' => Carbon::create(1977, 8, 26),
    'bank_holiday' => false
]);

$carbon->addHoliday([
    'name' => "SZJA Bevallás",
    'date' => function() use($carbon) {
        $q1 = Carbon::create($carbon->year, 5, 22, 0, 0, 0);
        if($q1->isBankHoliday()) {
            $q1->addDay();

            if($q1->isWeekend()) {
                $q1->next(Carbon::MONDAY);
            }
        }

        if($q1->isWeekend()) {
            $q1->next(Carbon::MONDAY);
        }

        if($q1 < $carbon) {
            $q1 = Carbon::create($carbon->year + 1, 5, 22, 0, 0, 0);

            if($q1->isBankHoliday()) {
                $q1->addDay();

                if($q1->isWeekend()) {
                    $q1->next(Carbon::MONDAY);
                }
            }

            if($q1->isWeekend()) {
                $q1->next(Carbon::MONDAY);
            }
        }

        if($q1->isBankHoliday()) {
            $q1->addDay();
        }

        return $q1;
    },
    'bank_holiday' => false
]);

附加示例

$carbon = Carbon::create(2016, 12, 25); // Sunday
$carbon->getHolidayName(); // Karácsony

$carbon = Carbon::create(2016, 12, 26); // Monday
$carbon->getHolidayName(); // Karácsony Másnap

贡献

  1. 克隆仓库并安装依赖项。
composer install
  1. 运行测试

使用本地安装的carbon版本

$ ./vendor/bin/phpunit

// or with coverage

$ XDEBUG_MODE=coverage ./vendor/bin/phpunit

针对Carbon v2进行测试

./tests/carbon-2.sh