Rev 2 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 5 | ||
---|---|---|---|
1 | <?php |
1 | <?php |
2 | 2 | ||
3 | // Neujahr setzen (fester Feiertag am 1. Januar) |
3 | // Neujahr setzen (fester Feiertag am 1. Januar) |
4 | // Hl. Drei Könige setzen (fester Feiertag am 6. Januar) |
4 | // Hl. Drei Könige setzen (fester Feiertag am 6. Januar) |
5 | // Rosenmontag berechnen (beweglicher Feiertag; 48 Tage vor Ostern) |
5 | // Rosenmontag berechnen (beweglicher Feiertag; 48 Tage vor Ostern) |
6 | // Aschermittwoch berechnen (beweglicher Feiertag; 46 Tage vor Ostern) |
6 | // Aschermittwoch berechnen (beweglicher Feiertag; 46 Tage vor Ostern) |
7 | // Karfreitag berechnen (beweglicher Feiertag; 2 Tage vor Ostern) |
7 | // Karfreitag berechnen (beweglicher Feiertag; 2 Tage vor Ostern) |
8 | // Ostersonntag |
8 | // Ostersonntag |
9 | // Ostermontag berechnen (beweglicher Feiertag; 1 Tag nach Ostern) |
9 | // Ostermontag berechnen (beweglicher Feiertag; 1 Tag nach Ostern) |
10 | // Maifeiertag setzen (fester Feiertag am 1. Mai) |
10 | // Maifeiertag setzen (fester Feiertag am 1. Mai) |
11 | // Christi Himmelfahrt berechnen (beweglicher Feiertag; 39 Tage nach Ostern) |
11 | // Christi Himmelfahrt berechnen (beweglicher Feiertag; 39 Tage nach Ostern) |
12 | // Pfingstsonntag berechnen (beweglicher Feiertag; 49 Tage nach Ostern) |
12 | // Pfingstsonntag berechnen (beweglicher Feiertag; 49 Tage nach Ostern) |
13 | // Pfingstmontag berechnen (beweglicher Feiertag; 50 Tage nach Ostern) |
13 | // Pfingstmontag berechnen (beweglicher Feiertag; 50 Tage nach Ostern) |
14 | // Fronleichnam berechnen (beweglicher Feiertag; 60 Tage nach Ostern) |
14 | // Fronleichnam berechnen (beweglicher Feiertag; 60 Tage nach Ostern) |
15 | // Mariä Himmelfahrt setzen (fester Feiertag am 15. August) |
15 | // Mariä Himmelfahrt setzen (fester Feiertag am 15. August) |
16 | // Tag der deutschen Einheit setzen (fester Feiertag am 3. Oktober) |
16 | // Tag der deutschen Einheit setzen (fester Feiertag am 3. Oktober) |
17 | // Reformationstag setzen (fester Feiertag am 31. Oktober) |
17 | // Reformationstag setzen (fester Feiertag am 31. Oktober) |
18 | // Allerheiligen setzen (fester Feiertag am 1. November) |
18 | // Allerheiligen setzen (fester Feiertag am 1. November) |
19 | // Heiligabend setzen (fester 'Feiertag' am 24. Dezember) |
19 | // Heiligabend setzen (fester 'Feiertag' am 24. Dezember) |
20 | // Erster Weihnachtstag setzen (fester 'Feiertag' am 25. Dezember) |
20 | // Erster Weihnachtstag setzen (fester 'Feiertag' am 25. Dezember) |
21 | // Zweiter Weihnachtstag setzen (fester 'Feiertag' am 26. Dezember) |
21 | // Zweiter Weihnachtstag setzen (fester 'Feiertag' am 26. Dezember) |
22 | // Sylvester setzen (fester 'Feiertag' am 31. Dezember) |
22 | // Sylvester setzen (fester 'Feiertag' am 31. Dezember) |
23 | 23 | ||
24 | function ostersonntag($year) { |
24 | function ostersonntag($year) { |
25 | 25 | ||
26 | $J = date ("Y", mktime(0, 0, 0, 1, 1, $year)); |
26 | $J = date ("Y", mktime(0, 0, 0, 1, 1, $year)); |
27 | 27 | ||
28 | $a = $J % 19; |
28 | $a = $J % 19; |
29 | $b = $J % 4; |
29 | $b = $J % 4; |
30 | $c = $J % 7; |
30 | $c = $J % 7; |
31 | $m = number_format (8 * number_format ($J / 100) + 13) / 25 - 2; |
31 | $m = number_format (8 * number_format ($J / 100) + 13) / 25 - 2; |
32 | $s = number_format ($J / 100 ) - number_format ($J / 400) - 2; |
32 | $s = number_format ($J / 100 ) - number_format ($J / 400) - 2; |
33 | $M = (15 + $s - $m) % 30; |
33 | $M = (15 + $s - $m) % 30; |
34 | $N = (6 + $s) % 7; |
34 | $N = (6 + $s) % 7; |
35 | $d = ($M + 19 * $a) % 30; |
35 | $d = ($M + 19 * $a) % 30; |
36 | 36 | ||
37 | if ($d == 29) { |
37 | if ($d == 29) { |
38 | $D = 28; |
38 | $D = 28; |
39 | } else if ($d == 28 and $a >= 11) { |
39 | } else if ($d == 28 and $a >= 11) { |
40 | $D = 27; |
40 | $D = 27; |
41 | } else { |
41 | } else { |
42 | $D = $d; |
42 | $D = $d; |
43 | } |
43 | } |
44 | 44 | ||
45 | $e = (2 * $b + 4 * $c + 6 * $D + $N) % 7; |
45 | $e = (2 * $b + 4 * $c + 6 * $D + $N) % 7; |
46 | 46 | ||
47 | 47 | ||
48 | $easter = mktime (0, 0, 0, 3, 21, $J) + (($D + $e + 1) * 86400); |
48 | $easter = mktime (0, 0, 0, 3, 21, $J) + (($D + $e + 1) * 86400); |
49 | 49 | ||
50 | return $easter; |
50 | return $easter; |
51 | 51 | ||
52 | } |
52 | } |
53 | 53 | ||
54 | 54 | ||
55 | function get_easter_depending_days($year) { |
55 | function get_easter_depending_days($year) { |
56 | $es = ostersonntag($year); |
56 | $es = ostersonntag($year); |
57 | $sd = 24 * 60 * 60; |
57 | $sd = 24 * 60 * 60; |
58 | $days = array( |
58 | $days = array( |
59 | 'rose_monday' => $es - (48 * $sd), |
59 | 'rose_monday' => $es - (48 * $sd), |
60 | 'shrove_tuesday' => $es - (47 * $sd), |
60 | 'shrove_tuesday' => $es - (47 * $sd), |
61 | 'ash_wednesday' => $es - (46 * $sd), |
61 | 'ash_wednesday' => $es - (46 * $sd), |
62 | 'palm_sunday' => $es - (7 * $sd), |
62 | 'palm_sunday' => $es - (7 * $sd), |
63 | 'good_friday' => $es - (2 * $sd), |
63 | 'good_friday' => $es - (2 * $sd), |
64 | 'easter_sunday' => $es, |
64 | 'easter_sunday' => $es, |
65 | 'easter_monday' => $es + (1 * $sd), |
65 | 'easter_monday' => $es + (1 * $sd), |
66 | 'low_sunday' => $es + (7 * $sd), |
66 | 'low_sunday' => $es + (7 * $sd), |
67 | 'ascension_day' => $es + (39 * $sd), |
67 | 'ascension_day' => $es + (39 * $sd), |
68 | 'whit_sunday' => $es + (49 * $sd), |
68 | 'whit_sunday' => $es + (49 * $sd), |
69 | 'whit_monday' => $es + (50 * $sd), |
69 | 'whit_monday' => $es + (50 * $sd), |
70 | 'corpus_christi' => $es + (60 * $sd) |
70 | 'corpus_christi' => $es + (60 * $sd) |
71 | ); |
71 | ); |
72 | return($days); |
72 | return($days); |
73 | } |
73 | } |
74 | 74 | ||
75 | $days = get_easter_depending_days(date("Y")); |
75 | $days = get_easter_depending_days(date("Y")); |
76 | echo "Rosemontag: ", |
76 | echo "Rosemontag: ", |
77 | date ("d.m.Y", $days['rose_monday']), "<br>"; |
77 | date ("d.m.Y", $days['rose_monday']), "<br>"; |
78 | echo "Fastnachtsdienstag: ", |
78 | echo "Fastnachtsdienstag: ", |
79 | date ("d.m.Y", $days['shrove_tuesday']), "<br>"; |
79 | date ("d.m.Y", $days['shrove_tuesday']), "<br>"; |
80 | echo "Aschermittwoch: ", |
80 | echo "Aschermittwoch: ", |
81 | date ("d.m.Y", $days['ash_wednesday']), "<br>"; |
81 | date ("d.m.Y", $days['ash_wednesday']), "<br>"; |
82 | echo "Palmsonntag: ", |
82 | echo "Palmsonntag: ", |
83 | date ("d.m.Y", $days['palm_sunday']), "<br>"; |
83 | date ("d.m.Y", $days['palm_sunday']), "<br>"; |
84 | echo "Karfreitag: ", |
84 | echo "Karfreitag: ", |
85 | date ("d.m.Y", $days['good_friday']), "<br>"; |
85 | date ("d.m.Y", $days['good_friday']), "<br>"; |
86 | echo "Ostersonntag: ", |
86 | echo "Ostersonntag: ", |
87 | date ("d.m.Y", $days['easter_sunday']), "<br>"; |
87 | date ("d.m.Y", $days['easter_sunday']), "<br>"; |
88 | echo "Ostermontag: ", |
88 | echo "Ostermontag: ", |
89 | date ("d.m.Y", $days['easter_monday']), "<br>"; |
89 | date ("d.m.Y", $days['easter_monday']), "<br>"; |
90 | echo "Weißer Sonntag: ", |
90 | echo "Weißer Sonntag: ", |
91 | date ("d.m.Y", $days['low_sunday']), "<br>"; |
91 | date ("d.m.Y", $days['low_sunday']), "<br>"; |
92 | echo "Christi Himmelfahrt: ", |
92 | echo "Christi Himmelfahrt: ", |
93 | date ("d.m.Y", $days['ascension_day']), "<br>"; |
93 | date ("d.m.Y", $days['ascension_day']), "<br>"; |
94 | echo "Pfingstsonntag: ", |
94 | echo "Pfingstsonntag: ", |
95 | date ("d.m.Y", $days['whit_sunday']), "<br>"; |
95 | date ("d.m.Y", $days['whit_sunday']), "<br>"; |
96 | echo "Pfingstmontag: ", |
96 | echo "Pfingstmontag: ", |
97 | date ("d.m.Y", $days['whit_monday']), "<br>"; |
97 | date ("d.m.Y", $days['whit_monday']), "<br>"; |
98 | echo "Fronleichnam: ", |
98 | echo "Fronleichnam: ", |
99 | date ("d.m.Y", $days['corpus_christi']), "<br>"; |
99 | date ("d.m.Y", $days['corpus_christi']), "<br>"; |
100 | 100 | ||
101 | ?> |
101 | ?> |