![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Veteran
![]() Registriert seit: 13.11.1999
Beiträge: 466
|
![]() Also folgender php-Code:
<?php for ($jahr=1980; $jahr<2011; $jahr++) { print "Aschermittwoch $jahr = " . strftime("%A, %d.%B %Y",easter_date($jahr) - 46*86400) . " "; } ?> bringt folgendes Ergebnis: Aschermittwoch 1980 = Wednesday, 20.February 1980 Aschermittwoch 1981 = Tuesday, 03.March 1981 Aschermittwoch 1982 = Tuesday, 23.February 1982 Aschermittwoch 1983 = Tuesday, 15.February 1983 Aschermittwoch 1984 = Tuesday, 06.March 1984 Aschermittwoch 1985 = Tuesday, 19.February 1985 Aschermittwoch 1986 = Wednesday, 12.February 1986 Aschermittwoch 1987 = Tuesday, 03.March 1987 Aschermittwoch 1988 = Tuesday, 16.February 1988 Aschermittwoch 1989 = Wednesday, 08.February 1989 Aschermittwoch 1990 = Tuesday, 27.February 1990 Aschermittwoch 1991 = Wednesday, 13.February 1991 Aschermittwoch 1992 = Tuesday, 03.March 1992 Aschermittwoch 1993 = Tuesday, 23.February 1993 Aschermittwoch 1994 = Tuesday, 15.February 1994 Aschermittwoch 1995 = Tuesday, 28.February 1995 Aschermittwoch 1996 = Tuesday, 20.February 1996 Aschermittwoch 1997 = Wednesday, 12.February 1997 Aschermittwoch 1998 = Tuesday, 24.February 1998 Aschermittwoch 1999 = Tuesday, 16.February 1999 Aschermittwoch 2000 = Tuesday, 07.March 2000 Aschermittwoch 2001 = Tuesday, 27.February 2001 Aschermittwoch 2002 = Wednesday, 13.February 2002 Aschermittwoch 2003 = Tuesday, 04.March 2003 Aschermittwoch 2004 = Tuesday, 24.February 2004 Aschermittwoch 2005 = Wednesday, 09.February 2005 Aschermittwoch 2006 = Tuesday, 28.February 2006 Aschermittwoch 2007 = Tuesday, 20.February 2007 Aschermittwoch 2008 = Wednesday, 06.February 2008 Aschermittwoch 2009 = Tuesday, 24.February 2009 Aschermittwoch 2010 = Tuesday, 16.February 2010 Muss man hier beten, damit der Aschermittwoch wirklich auf einen Mittwoch faellt? Mit allen anderen von Ostern abhaengigen Feiertagen funktioniert diese "Formel" wunderbar. Vielleicht weiss jemand Rat, bevor ich dem Papst ein Mail senden muss . . . Danke ff |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 14.02.2004
Alter: 56
Beiträge: 41
|
![]() kannst ma die formel erklären wie kommst auf 46 und 86tausend
ist der aschermittwoch net beweglich ? sag an ![]() |
![]() |
![]() |
![]() |
#3 |
Veteran
![]() Registriert seit: 13.11.1999
Beiträge: 466
|
![]() "Heilige" Webseiten behaupten, dass der Aschermittwoch 46 Tage vor dem Ostersonntag ist. Ich behaupte, dass ein Tag 86400 Sekunden hat.
Wenn er sich von Mittwoch auf Dienstag bewegt, ist er mir ZU beweglich ;-) |
![]() |
![]() |
![]() |
#4 |
Veteran
![]() Registriert seit: 13.11.1999
Beiträge: 466
|
![]() Also mit Versuch und Irrtum habe ich jetzt herausgefunden, dass immer ein Mittwoch berechnet wird, wenn ich dem Tag statt 86400 nur 86321 Sekunden verpasse. Nicht fragt mich jetzt warum? Das wollt ich von EUCH wissen
![]() |
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 23.05.2003
Beiträge: 780
|
![]() Hi ff!
Hab' ja nix mit php am Hut, aber das Problem sehe ich ein. Ich habe den Verdacht, Du bist dem allseits beliebten Dezimalbruch-Binärdarstellungsfehler auf der Spur. Du rechnest mit sehr großen Zahlen, da kann die Rechnung "Ostersonntag(Sekunde 0) - 46 Tage a 86400" schon mal zu Ungenauigkeiten führen. Wie gesagt, nur ein Verdacht, habe aber in Excel bei sehr großen Zahlen auch schon Erstaunliches rausgekriegt. MfG Herbertus edit: Wie wärs mit Buddhismus, da geht es nur ums Nirwana, dort gibt es keine Zeit? |
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 19.04.2000
Beiträge: 541
|
![]() Wahrscheinlich liegt das Problem daran, dass du nicht in Tagen sondern in Sekunden rechnest.
Du versuchst praktisch den Aschermittwoch um 00:00:00 Uhr zu berechnen. Wenn du nur um eine Sekunde falsch liegst (z.B. durch Rundungsfehler) dann erwischst du den Dienstag davor um 23:59:59 Uhr. Rechne entweder nur in Tagen oder sieh zu dass du den Aschermittwoch zur Mittagszeit nimmst, da kann dir auch keine Abweichung was anhaben (im Prinzip hast du das durch die Anpassung der Sekunden gemacht, du bist weiter in den Tag gegangen mit der Berechnung). |
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150
|
![]() k.A. obs stimmt, aber:
PHP-Code:
____________________________________
LOL - Mein erstes Post im Programmier Forum MACINTOSH - Most Applications Crash, If Not The Operating System Hangs |
![]() |
![]() |
![]() |
#8 |
Veteran
![]() Registriert seit: 13.11.1999
Beiträge: 466
|
![]() @alle - danke fuer eure Beitraege.
@käptn - danke fuer deinen Loesungsansatz! Lediglich 1980 liefert hier einen Donnerstag als Aschermittwoch. Sonst wuerde es stimmen. Ich glaube in der Zwischenzeit die Ursache gefunden zu haben. Schuld ist die Sommerzeitumstellung, die anscheinend in strftime beruecksichtigt wird. Wenn zu Ostern bereits Sommerzeit ist, dann fehlt in der Rechnung die eine "aufgefressene" Stunde und die Formel rechnet nach Dienstag 23h zurueck, statt nach Aschermittwoch 00h. Es solte nicht so schwierig sein, nun eine saubere Loesung zu finden. Mal sehen . . . lg ff |
![]() |
![]() |
![]() |
#9 |
Veteran
![]() Registriert seit: 13.11.1999
Beiträge: 466
|
![]() So, wenn auch 46*86321 die verlorenen Stunde einspart und das richtige Ergebnis bringt, gehoert das meiner Meinung nach besser so angeschrieben: Osterdatum - 46*86400 + 43200.
So frage ich das Datum und den Wochennamen zu Mittag bzw 11h ab. PHP-Code:
lg ff |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|