Subversion Repositories php_utils

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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