Jump to content
ТУК НЕ СЕ ПРЕДЛАГАТ ХАКЕРСКИ УСЛУГИ ! ×

PHP: Национални празници и почивни дни


Recommended Posts

Някой дали може да направи проверка на логиката ми за автоматично изчисление на почивните дни за дадена година в България?
 

private function setHolidays()
    {
        $holidays = [
            '01-01' => 'Нова година.',
            '03-03' => 'Ден на Освобождението на България от османско иго - национален празник.',
            '05-01' => 'Ден на труда и на международната работническа солидарност.',
            '05-06' => 'Гергьовден, Ден на храбростта и Българската армия.',
            '05-24' => 'Ден на българската просвета и култура и на славянската писменост.',
            '09-06' => 'Ден на Съединението.',
            '09-22' => 'Ден на Независимостта на България.',
            '12-24' => 'Бъдни вечер.',
            '12-25' => 'Рождество Христово (Коледа).',
            '12-26' => 'Рождество Христово (Коледа).',
        ];
        $year = $this->dateTime->format('Y');
        foreach ($holidays as $monthDay => $description) {
            $date = new \DateTime($year . '-' . $monthDay, new \DateTimeZone($this->dateTimeZone));
            if ($date->format('N') > 5) {
                $dateModify = $date->modify('+1 day');
                if ($dateModify->format('N') == 7) {
                    $dateModify = $date->modify('+1 day');
                }
                $holidays[$dateModify->format('m-d')] = $description;
            }
        }
        if ($easterDate = new \DateTime(date($this->dateFormat, $this->orthodoxEaster($year)))) {
            $easterDateDescription = 'Великден.';
            $holidays[$easterDate->format('m-d')] = $easterDateDescription;
            $easterDate->modify('+1 day');
            $holidays[$easterDate->format('m-d')] = $easterDateDescription;
            $easterDate->modify('-2 day');
            $holidays[$easterDate->format('m-d')] = $easterDateDescription;
            $easterDate->modify('-1 day');
            $holidays[$easterDate->format('m-d')] = $easterDateDescription;
        }
        ksort($holidays);
        $this->debug('Official Holidays: '.print_r($holidays, true));
        $this->holidays = $holidays;
        return $this;
    }

Някой може ли да ми даде година в която:
„Когато официалните празници по ал. 1, с изключение на Великденските празници, съвпадат със събота и/или неделя, първият или първите два работни дни след тях са неприсъствени.

 

Цитат

Празнични дни
Чл. 154. (Изм. и доп. - ДВ, бр. 30 от 1990 г., изм. - ДВ, бр. 27 от 1991 г., изм. - ДВ, бр. 104 от 1991 г., изм. - ДВ, бр. 88 от 1992 г., изм. - ДВ, бр. 2 от 1996 г.) (1) (Доп. - ДВ, бр. 22 от 1998 г., изм. и доп. - ДВ, бр. 56 от 1998 г., доп. - ДВ, бр. 108 от 1998 г., изм. - ДВ, бр. 15 от 2010 г.) Официални празници са:
1 януари - Нова година;
3 март - Ден на Освобождението на България от османско иго - национален празник;
1 май - Ден на труда и на международната работническа солидарност;
6 май - Гергьовден, Ден на храбростта и Българската армия;
24 май - Ден на българската просвета и култура и на славянската писменост;
6 септември - Ден на Съединението;
22 септември - Ден на Независимостта на България;
1 ноември - Ден на народните будители - неприсъствен за всички учебни заведения;
24 декември - Бъдни вечер, 25 и 26 декември - Рождество Христово;
Велики петък, Велика събота и Великден - неделя и понеделник, които в съответната година са определени за празнуването му.
(2) (Нова - ДВ, бр. 105 от 2016 г., в сила от 01.01.2017 г.) Когато официалните празници по ал. 1, с изключение на Великденските празници, съвпадат със събота и/или неделя, първият или първите два работни дни след тях са неприсъствени.
(3) (Доп. - ДВ, бр. 52 от 2004 г., в сила от 01.08.2004 г., изм. - ДВ, бр. 15 от 2010 г., предишна ал. 2, изм. - ДВ, бр. 105 от 2016 г., в сила от 01.01.2017 г.) Министерският съвет може да обявява еднократно и други дни за неприсъствени за оказване на обществена почит към важни исторически, политически, културни или други особено значими събития, както и дни за честване на определени професии и за оказване на признателност.

 

  • Thanks 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.