Почивни дни
Posted: Thu Oct 01, 2020 9:31 am
Колеги, някой писал ли е генератор с който може автоматично да се вземат всички почивни дати събота и неделя и дните от официалните празници за годината?
Html, php, mysql, perl, javascript, SEO, CMS и CSS форуми.
https://web-tourist.net/forum/
Аз го правя ръчна всяка година за проекта си. Не съм открил друг вариант за моментаdakata__92 wrote: ↑Thu Oct 01, 2020 9:31 amКолеги, някой писал ли е генератор с който може автоматично да се вземат всички почивни дати събота и неделя и дните от официалните празници за годината?
Code: Select all
/**
* National American Holidays
* @param string $year
* @return array
*/
public static function getNationalAmericanHolidays($year) {
// January 1 - New Year’s Day (Observed)
// Calc Last Monday in May - Memorial Day strtotime("last Monday of May 2011");
// July 4 Independence Day
// First monday in september - Labor Day strtotime("first Monday of September 2011")
// November 11 - Veterans’ Day (Observed)
// Fourth Thursday in November Thanksgiving strtotime("fourth Thursday of November 2011");
// December 25 - Christmas Day
$bankHolidays = array(
$year . "-01-01" // New Years
, "". date("Y-m-d",strtotime("last Monday of May " . $year) ) // Memorial Day
, $year . "-07-04" // Independence Day (corrected)
, "". date("Y-m-d",strtotime("first Monday of September " . $year) ) // Labor Day
, $year . "-11-11" // Veterans Day
, "". date("Y-m-d",strtotime("fourth Thursday of November " . $year) ) // Thanksgiving
, $year . "-12-25" // XMAS
);
return $bankHolidays;
}
Code: Select all
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;
}
Празнични дни
Чл. 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 г.) Министерският съвет може да обявява еднократно и други дни за неприсъствени за оказване на обществена почит към важни исторически, политически, културни или други особено значими събития, както и дни за честване на определени професии и за оказване на признателност.
Това е ясно. Мен ме интересува условието в което се казва: