Subversion Repositories php_utils

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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. ?>