-
Notifications
You must be signed in to change notification settings - Fork 0
/
feiertage.php
61 lines (50 loc) · 2.09 KB
/
feiertage.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
error_reporting(E_ALL);
/**
* Ermittle Feiertage, Arbeitstage und Wochenenden von einem Datum
*
* @param string $datum im Format YYYY-MM-DD
* @param string $bundesland
* @return string
*/
function feiertag ($datum,$bundesland='') {
$datum = explode("-", $datum);
$datum[1] = str_pad($datum[1], 2, "0", STR_PAD_LEFT);
$datum[2] = str_pad($datum[2], 2, "0", STR_PAD_LEFT);
if (!checkdate($datum[1], $datum[2], $datum[0])) return false;
$datum_arr = getdate(mktime(0,0,0,$datum[1],$datum[2],$datum[0]));
$easter_d = date("d", easter_date($datum[0]));
$easter_m = date("m", easter_date($datum[0]));
$status = 'Arbeitstag';
if ($datum_arr['wday'] == 0 || $datum_arr['wday'] == 6) $status = 'Wochenende';
if ($datum[1].$datum[2] == '0101') {
return 'Neujahr';
} elseif ($datum[1].$datum[2] == '0106') {
return 'Hg. 3 Könige';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d-2,$datum[0]))) {
return 'Karfreitag';
}elseif ($datum[1].$datum[2] == $easter_m.$easter_d) {
return 'Ostersonntag';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+1,$datum[0]))) {
return 'Ostermontag';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+39,$datum[0]))) {
return 'Christi Himmelfahrt';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+49,$datum[0]))) {
return 'Pfingstsonntag';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+50,$datum[0]))) {
return 'Pfingstmontag';
} elseif ($datum[1].$datum[2] == date("md",mktime(0,0,0,$easter_m,$easter_d+60,$datum[0]))) {
return 'Fronleichnam';
} elseif ($datum[1].$datum[2] == '0501') {
return 'Tag der Arbeit';
} elseif ($datum[1].$datum[2] == '1101') {
return 'Allerheiligen';
} elseif ($datum[1].$datum[2] == '1225') {
return '1. Weinachtstag';
}elseif ($datum[1].$datum[2] == '1226') {
return '2. Weinachtstag';
} else {
return $status;
}
}
?>