Ankündigung

Einklappen
Keine Ankündigung bisher.

Western/Catholic und Orthodox Easter date

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Western/Catholic und Orthodox Easter date

    Hi,
    easter_date() liefert ja nur den Zeitstempel des Ostersonntages für die Jahre 1970-2027, und dort auch nur für das 'westliche' Osterfest.

    Für DateTime gibt es diese Grenzen nicht, es fehlt jedoch eine gleichwertige Funktion für easter_date().
    Dafür werden hier 2 Funktionen vorgestellt:
    PHP-Code:
    function createDateEastern($year=null$timezone null) {
      if(
    $year === null$year date_create(null,$timezone)->format('Y');
      if(
    is_scalar($year)){
        
    $year = (int)$year;
        if(
    $year 1600 or $year >= 2100) return false;
      }
      else return 
    false;
      
    $easterDays easter_days($yearCAL_EASTER_ALWAYS_GREGORIAN);
      return 
    date_create($year.'-3-21',$timezone)->modify($easterDays.' Days');

    PHP-Code:
    function createDateOrthodoxEastern($year=null$timezone null) {
      if(
    $year === null$year date_create(null,$timezone)->format('Y');
      if(
    is_scalar($year)){
        
    $year = (int)$year;
        if(
    $year 1600 or $year >= 2100) return false;
      }
      else return 
    false;
      
    $easterDays easter_days($yearCAL_EASTER_ALWAYS_JULIAN);
      
    $dt date_create($year.'-4-3',$timezone)->modify($easterDays.' Days');
      return 
    $dt->modify('-'.$dt->format('w').' Days');

    Beide Funktionen liefern ein Objekt vom Typ DateTime für Jahreszahlen von 1600 - 2099 und false bei Fehlern.

    Weitere bewegliche Feiertage lassen sich relativ leicht aus den Datum des Osterfestes ableiten.

    Beispiel:
    PHP-Code:
    //Pfingstsonntage im aktuellen Jahr
    $pentecost createDateEastern()->modify('+49 Days');
    $orthodoxPentecost createDateOrthodoxEastern()->modify('+49 Days'); 
    LG jspit

  • #2


    Falls dir langweilig werden sollte: Kennst du schon die Unterschiede zwischen den Festtagskalendern der Altkalendarier, Neukalendarier und der finnischen orthodoxen Kirche?
    Wenn man die Wurst schräg anschneidet, hält sie länger, weil die Scheiben größer sind.

    Kommentar


    • #3
      Kann mir jemand schreiben wie ich passend zu der Funktion oben die Ausgabe erzeuge , sodass ich auch die Zeiten der jeweiligen Jahre sehen kann.

      Kommentar


      • #4
        Schau mal in die Wissenssammlung.

        Kommentar


        • #5
          Die obigen Funktionen sind mittlerweile auch als Methoden in der Klasse dt vorhanden. Der Codeschnipsel dazu wäre:
          PHP-Code:
          //use https://github.com/jspit-de/dt
          //require 'yourPath/class.dt.php';

          dt::setDefaultLanguage('de');  //German
          for($year=2018$year <= 2025$year++){
            
          $easterdate dt::create($year.'-1-1')->setEasterDate();
            echo 
          'Ostern '.$year.' ist am '.$easterdate->formatL('d. F').'<br>';

          Dies erzeugt eine Ausgabe wie
          Code:
          Ostern 2018 ist am 01. April
          Ostern 2019 ist am 21. April
          Ostern 2020 ist am 12. April
          Ostern 2021 ist am 04. April
          Ostern 2022 ist am 17. April
          Ostern 2023 ist am 09. April
          Ostern 2024 ist am 31. März
          Ostern 2025 ist am 20. April

          Kommentar


          • #6
            Das bezieht sich jetzt aber auf Deutschland, also spricht nicht die ORTHODOXEN Feiertage. Ich würde aber gerne die ORTHODOXEN Oster-Feiertage ausgeben. Die weichen zum Teil sehr stark ab.

            Kommentar


            • #7
              Dafür must du nur setEasterDate() mit den Parameter dt::EASTER_EAST aufrufen, also ..->setEasterDate(dt::EASTER_EAST); , dann hast du die ORTHODOXEN Oster-Feiertage.

              LG jspit

              Kommentar


              • #8
                Hallo jspit, das hat toll geklappt mit deiner Class. Vielen Dank dafür

                Sag mal, darf man die frei verwenden, also für meine Website, auch wenn Werbung drauf ist?
                GitHub hat ja irgendwie die Nutzungsbedingungen geändert.

                LG Alex73

                Kommentar


                • #9
                  Kein Thema, schau hier.

                  LG jspit

                  Kommentar

                  Lädt...
                  X