[BRAINSTORMING] Kalendartage....

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

  • [BRAINSTORMING] Kalendartage....

    Hallo, brauche ein paar wichtige (und vielleicht auch andere) Angaben für Kalendartage (in Bezug auf Deutschland). Da dachte ich mir, nehmen wir mal ein Buch und schauen rein und siehe da, neben der Funktion
    PHP-Code:
    date(); 
    gibt es auch noch
    PHP-Code:
    easter_date(); 
    , welches mir den Ostersonntag anzeigt....

    z.B.

    PHP-Code:
    echo date("d.m.Y",easter_date(2003)); 

    So, danke an Data-Becker, denn somit konnte ich (und das stand ein paar Zeilen darunter) den Karfreitag, Aschermittwoch und noch ander Feiertage ermitteln....

    z.B. ist der Karfreitag -2 Tage vom Ostersonntag entfernt (welch geniale Erklärung), welches sich als Script so schreibt:

    PHP-Code:
    echo date("d.m.Y"mktime(0,0,0,date("m",easter_date(2003)), date("d"easter_date(2003)-2,2003)); 
    Hier noch einige Fakten:

    Aschermittwoch -46
    Christi Himmelfahrt +39
    Pfingsten +49
    Fronleichnam +60

    Den Muttertag berechnen wir so:

    PHP-Code:
    echo date("d.m.Y",mktime(0,0,0,5(14-date("w"mktime(0,0,0,5,0,2003))),2003)); 
    , weil er der zweite Sonntag im Mai ist.....

    es gibt noch den 1.Advent, aber vielleicht kann ja jemand dieses zum Brainstorming über Kalendartage posten (ansonsten mache ich das natürlich)....

    ...für weitere Verbesserungen und Hinweise bin ich offen.......
    ------------------------------------------
    Ne Tudo que reluz de Ouro

  • #2
    Re: [BRAINSTORMING] Kalendartage....

    Original geschrieben von Milchbolle
    es gibt noch den 1.Advent, aber vielleicht kann ja jemand dieses zum Brainstorming über Kalendartage posten (ansonsten mache ich das natürlich)....
    der 1. advent ist doch auch einfach. der 4. sonntag vor weihnachten bzw heiligabend. also 4 sonntage vor dem 24.12. eines jeden jahres.

    Original geschrieben von Milchbolle
    ...für weitere Verbesserungen und Hinweise bin ich offen.......
    was ich mich jetzt frage..... was ist, wenn du das easter_date() nicht hättest. wie kommst du nun auf ostern?
    war auch eher nur als scherz gedacht. auch hier gibt es eine regel. wenn ich mich nicht irre, sind es soundsoviel tage nach weihnachten.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      wenn ich mich nicht irre, sind es soundsoviel tage nach weihnachten.
      Nein, Weihnachten ist immer 24./25. Dezember. Ostern wechselt immer hat irgendwas mit dem Mond zu tun.

      Kommentar


      • #4
        ist ist am sonntag nach dem ersten frühlings vollmond.
        aber wie man das mit php hinbekommt, weiß ich auch nicht
        Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

        Kommentar


        • #5
          wird schwer, deshalb gibt es ja easter_date();

          Kommentar


          • #6
            aber intern muss das trotzdem berechnet werden, esseidenn, die funktion orientiert sich an einer liste - ist also zeitlich begrenzt
            Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

            Kommentar


            • #7
              Original geschrieben von TheUser
              aber intern muss das trotzdem berechnet werden, esseidenn, die funktion orientiert sich an einer liste - ist also zeitlich begrenzt
              nein. das wird mit sicherheit auch berechnet....
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                hallo,

                ostern kann man selbst ausrechnen. die mathematische formel gibts bei

                http://www.ptb.de/de/suche/_index.html
                - nach "ostern" suchen

                läßt sich relativ leicht in php umsetzen
                gruss oskar40

                kapieren - nicht kopieren

                Kommentar


                • #9
                  noch ein hinweis zu datum-rechnereien:
                  ihr solltet berücksichtigen, ob das jahr ein schaltjahr ist oder nicht. der 29. feb. kann die ergebnisse um einen tag verfälschen.

                  ganz andere frage: kennt jemand die regeln für winter / frühlings / sommer / herbstanfang? soweit ich mich erinnere, spielt da das schaltjahr auch eine rolle.
                  gruss oskar40

                  kapieren - nicht kopieren

                  Kommentar


                  • #10
                    nein, die jahreszeiten sind immer fest. da ändert sich nix - folglich muss auch nix berechnet werden.

                    man müsste berücksichtigen, ob das script auf der nord- oder südhalbkugel ausgeführt wird.
                    Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

                    Kommentar


                    • #11
                      nachtrag sommer- etc. anfang:

                      beim googeln fand ich an mehreren stellen:

                      Alle Daten der Aufzählung beziehen sich auf den 1.Januar
                      Frühlingsanfang . + 79 (+ event. Schalttag)
                      Sommeranfang . + 171 (+ event. Schalttag)
                      Herbstanfang . + 275 (+ event. Schalttag)
                      Winteranfang . + 355 (+ event. Schalttag)

                      also spielt der schalttag wohl doch eine rolle

                      allerdings waren beide quellen offensichtlich nicht wissenschaftlich, die identische darstellungsform und das gleiche info-umfeld schliessen nicht aus, das einer vom anderen was übernommen hat ...
                      gruss oskar40

                      kapieren - nicht kopieren

                      Kommentar


                      • #12
                        Sommer
                        Jahreszeit zwischen 21. Juni und 23. September auf der Nordhalbkugel und zwischen 22. Dezember und 21. März auf der Südhalbkugel.

                        Herbst
                        die Jahreszeit zwischen 23. September und 22. Dezember auf der Nordhalbkugel und zwischen 21. März und 21. Juni auf der Südhalbkugel.

                        Winter
                        Jahreszeit zwischen Wintersolstitium und Frühlings-Äquinoktium, auf der Nordhalbkugel der Erde vom 22. 12.-21. 3., auf der Südhalbkugel vom 21. 6.-23. 9.

                        Frühling
                        die Jahreszeit der gemäßigten Breiten, in der die Tageslänge zunimmt und die Sonne sich oberhalb des Himmelsäquators befindet; auf der Nordhalbkugel der Erde etwa vom 21. März bis 21. Juni, auf der Südhalbkugel etwa vom 23. September bis 21. Dezember.


                        Quelle: Wissen.de
                        Dieses Schreiben wurde automatisch erstellt und ist ohne Unterschrift gültig.

                        Kommentar


                        • #13
                          Berechnung von Ostern

                          Danke oskar40 für den Hinweis auf www.ptb.de/...
                          dort sah ich nach und basteltete die fkt ostern():

                          function ostern($year)
                          {
                          //Ostern: Fest zw. 22. März und 25. April am ersten Sonntag nach Frühligsvollmond
                          $k = (int)($year/100);//(1)
                          $m = 15+(int)((3*$k+3)/4)-(int)((8*$k+13)/25);//(2)
                          $s = 2-(int)((3*$k+3)/4);//(3)
                          $a = fmod($year, 19);//(4)
                          $d = fmod(19*$a+$m, 30);//(5)
                          $r = (int)($d/29)+((int)($d/28)-(int)($d/29))*(int)($a/11);//(6)
                          $og = 21+$d-$r;//(7) Märzdatum des Ostervollmonds
                          $sz = 7-fmod($year+(int)($year/4)+$s,7);//(8) Datum des ersten Sonntags im März
                          $oe = 7-fmod($og-$sz,7);
                          $ostersonntag = $og+$oe; //Tag des Ostersonntags, als Tag des Monat März ->32. März = 1. April
                          //Quelle: Physikalisch-Technische Bundesanstalt: zu Ostern und dieser Rechenvorschrift, Kalender allgemein
                          // Bringt auch unsere Funkuhren zum ticken!!
                          ...weiter im Programm... drei mögliche Datumsdarstellungen:

                          1.Möglichkeit: mit mktime:
                          $osterdatum=date("d.m.Y", mktime(0, 0, 0, 3, $ostersonntag, $year));
                          Aber: nur für Unix-Epoche von 1970 bis 2038, z.B. $year=2040 liefert für Ostern 31.12.1969 nicht so das Wahre!

                          2.Möglichkeit: Zusammenkleben eigener Datumsdarstellung (Format: 'd.m.Y' in Deutschland üblich):
                          $osterdatum=(($ostersonntag>31)?(($ostersonntag-31).".04.")($ostersonntag).".03.")).$year;

                          3.Möglichketi: wie 2. aber in Format 'Y-m-d' (php,mySQL) wohl optimal:
                          $osterdatum=$year.(($ostersonntag>31)?("-04-".($ostersonntag-31))"-03-".($ostersonntag)));
                          kann beim funktionsaufruf in Format 'd.m.Y' umgeformt werden: date("d.m.Y",strtotime(ostern(1991))) aber beachte dann wieder Unix-Epoche!
                          Schliesslich Funktionsende:
                          return $osterdatum;
                          }
                          oder ein 4-zeiler bringt's auch auf den Punkt:
                          function ostern($year)
                          {
                          $k = (int)($year/100);
                          $a = fmod($year, 19);
                          $d = fmod(19*$a+15+(int)((3*$k+3)/4)-(int)((8*$k+13)/25), 30);
                          $ostersonntag=21+$d-((int)($d/29)+((int)($d/28)-(int)($d/29))*(int)($a/11))+7-fmod(21+$d-((int)($d/29)+((int)($d/28)-(int)($d/29))*(int)($a/11))-(7-fmod($year+(int)($year/4)+2-(int)((3*$k+3)/4),7)),7);

                          $osterdatum=$year.(($ostersonntag>31)?("-04-".($ostersonntag-31))"-03-".($ostersonntag)));//Ausgabe: 'Y-m-d' s.o. 3. Möglichkeit der Datumsdarstellung
                          return $osterdatum;
                          }
                          Gruss

                          Zeitfunktionen verlängern leben, solche erstellen verkürzen es

                          Kommentar


                          • #14
                            Tipp:

                            Schaltjahre lassen sich durch 4 teilen, wenn man das Jahr allerdings an 100 verteilen kann, dann ist es kein Schaltjahr, wenn man das Jahr wieder durch 400 Teilen kann, dann ist es ein Schaltjahr.


                            Code:

                            PHP-Code:
                            <?php
                            function istSchaltjahr($Jahr) {
                              if(
                            $Jahr%== 0) return true;
                              if(
                            $Jahr%100 == 0) return false;
                              if(
                            $Jahr%400 == 0) return true;
                            }
                            ?>
                            PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                            Kommentar

                            Lädt...
                            X