Osterberchnung

Osterberchnung

am 14.06.2006 17:27:29 von Neugi

Hi Leute!,

ich hab mir ein kleines skritp geschriebn um alle wichtig feiertag
auszurechen, die von ostern abhängig sind.

habdazu das geschrieben:
function ostern($Jahr, $format)
{
$a =3D $Jahr % 19;
$b =3D $Jahr % 4;
$c =3D $Jahr % 7;
$H1 =3D $Jahr/100;
$H2 =3D $Jahr/400;
$N =3D 4 + $H1 - $H2;
$M =3D 15 + $H1 - $H2 - ((8 * $H1 + 13) / 25);
$d =3D (19 * $a + $M) % 30;
$e =3D (2 * $b + 4 * $c + 6 * $d + $N) % 7;
if ($d + $e == 35) { $ostern =3D 50; }
elseif ($d == 28 && $e == 6 && $a > 10) {$ostern =3D 49; }
else { $ostern =3D 22 + $d + $e; }
$ostern-=3D31;
$date =3D mktime(0,0,0,4,$ostern,$Jahr);
return date($format, $date);
}
for ($i=3D2006; $i<=3D3001; $i++)
{
echo ostern($i, "Y-m-d").' -> '.$i.'
';
}
?>

jetzt wo ich zum spass einfach mal die nächsten 1000 jahre anzeigen
lassen wollte ist mir aufgefallen das ich nur bis 2037 berechnen kann.

ist das eine beschränkung von php, das man nicht weiter in die zukunft
anzeigen lassen kann?

gruz
Neugi

Re: Osterberchnung

am 14.06.2006 17:29:30 von Johannes Mueller

Neugi schrieb:

> Hi Leute!,
>
> ich hab mir ein kleines skritp geschriebn um alle wichtig feiertag
> auszurechen, die von ostern abhängig sind.
>
> habdazu das geschrieben:
> > function ostern($Jahr, $format)
> {
> $a = $Jahr % 19;
> $b = $Jahr % 4;
> $c = $Jahr % 7;
> $H1 = $Jahr/100;
> $H2 = $Jahr/400;
> $N = 4 + $H1 - $H2;
> $M = 15 + $H1 - $H2 - ((8 * $H1 + 13) / 25);
> $d = (19 * $a + $M) % 30;
> $e = (2 * $b + 4 * $c + 6 * $d + $N) % 7;
> if ($d + $e == 35) { $ostern = 50; }
> elseif ($d == 28 && $e == 6 && $a > 10) {$ostern = 49; }
> else { $ostern = 22 + $d + $e; }
> $ostern-=31;
> $date = mktime(0,0,0,4,$ostern,$Jahr);
> return date($format, $date);
> }
> for ($i=2006; $i<=3001; $i++)
> {
> echo ostern($i, "Y-m-d").' -> '.$i.'
';
> }
>>
>
> jetzt wo ich zum spass einfach mal die nächsten 1000 jahre anzeigen
> lassen wollte ist mir aufgefallen das ich nur bis 2037 berechnen
> kann.
>
> ist das eine beschränkung von php, das man nicht weiter in die
> zukunft anzeigen lassen kann?
>
> gruz
> Neugi

du meinst vielleicht:
http://de2.php.net/manual/en/function.easter-date.php

grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Osterberchnung

am 14.06.2006 17:30:19 von Johannes Mueller

Neugi schrieb:

> Hi Leute!,
>
> ich hab mir ein kleines skritp geschriebn um alle wichtig feiertag
> auszurechen, die von ostern abhängig sind.
>
> habdazu das geschrieben:
> > function ostern($Jahr, $format)
> {
> $a = $Jahr % 19;
> $b = $Jahr % 4;
> $c = $Jahr % 7;
> $H1 = $Jahr/100;
> $H2 = $Jahr/400;
> $N = 4 + $H1 - $H2;
> $M = 15 + $H1 - $H2 - ((8 * $H1 + 13) / 25);
> $d = (19 * $a + $M) % 30;
> $e = (2 * $b + 4 * $c + 6 * $d + $N) % 7;
> if ($d + $e == 35) { $ostern = 50; }
> elseif ($d == 28 && $e == 6 && $a > 10) {$ostern = 49; }
> else { $ostern = 22 + $d + $e; }
> $ostern-=31;
> $date = mktime(0,0,0,4,$ostern,$Jahr);
> return date($format, $date);
> }
> for ($i=2006; $i<=3001; $i++)
> {
> echo ostern($i, "Y-m-d").' -> '.$i.'
';
> }
>>
>
> jetzt wo ich zum spass einfach mal die nächsten 1000 jahre anzeigen
> lassen wollte ist mir aufgefallen das ich nur bis 2037 berechnen
> kann.
>
> ist das eine beschränkung von php, das man nicht weiter in die
> zukunft anzeigen lassen kann?
>
> gruz
> Neugi

du meinst vielleicht:
http://de2.php.net/manual/en/function.easter-date.php

dort steht dann auch, warum nur bis 2037!

grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Osterberchnung

am 14.06.2006 17:32:39 von Neugi

hi,

ja das ist eine alternative, aber noch keine antwort warum es nur bis
2037 geht ;)

gruz

Re: Osterberchnung

am 14.06.2006 17:37:21 von Neugi

und auch diese funktion geht nur bis 2037 ;)

gruz

Re: Osterberchnung

am 14.06.2006 17:52:51 von Johannes Mueller

Neugi schrieb:

> hi,
>
> ja das ist eine alternative, aber noch keine antwort warum es nur bis
> 2037 geht ;)
>
> gruz

dort steht aber unter anderem:


This function will generate a warning if the year is outside of the
range for Unix timestamps (i.e. before 1970 or after 2037).


das sollte doch einen guten anhaltspunkt liefern!

Grüße retour

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.

Re: Osterberchnung

am 14.06.2006 18:01:09 von Herbert Bauernhofer

Neugi schrieb:
> hi,
>
> ja das ist eine alternative, aber noch keine antwort warum es nur bis
> 2037 geht ;)

*rofl* alternative ist gut

Re: Osterberchnung

am 14.06.2006 18:46:01 von do.not.REMOVETHAT

Neugi schrieb:

> Hi Leute!,

Hallo liebes Neugi.

> ich hab mir ein kleines skritp geschriebn um alle wichtig feiertag
> auszurechen, die von ostern abhängig sind.

Das hast Du umsnst gemacht. Das gibt es schon fertig als PHP-Funktion

> ist mir aufgefallen das ich nur bis 2037 berechnen kann.
>
> ist das eine beschränkung von php, das man nicht weiter in die zukunft
> anzeigen lassen kann?

Jein. Es ist eine Einschränkung in der Art und Weise, wie unter Unix mit
Datumswerten umgegangen wird: Sie werden als integer-Wert gespeichert,
und zwar die Anzahl der Sekunden seit dem 1.1.1970.

Grüße, Matthias

Re: Osterberchnung

am 15.06.2006 20:43:56 von Micha Kuehn

Matthias P. Wuerfl schrieb:
> Jein. Es ist eine Einschränkung in der Art und Weise, wie unter Unix mit
> Datumswerten umgegangen wird: Sie werden als integer-Wert gespeichert,
> und zwar die Anzahl der Sekunden seit dem 1.1.1970.
>
> Grüße, Matthias

Na, da muss wohl schnell eine Änderung her, sonst gibt es bald (bzw.
schon jetzt) ein 2037-Problem?! Ich dachte, man hätte aus dem
Y2K-Problem gelernt, Unix sei viel besser als alles andere und überhaupt...

Micha
--
Persönliche Mails: Bitte nur als reply - und als Wurmkur werden alle
Mails > 100 KB automatisch und unbesehen gelöscht!

Re: Osterberchnung

am 15.06.2006 21:08:07 von Achim Peters

Micha Kuehn wrote:
> Matthias P. Wuerfl schrieb:
>> Jein. Es ist eine Einschränkung in der Art und Weise, wie unter Unix
>> mit Datumswerten umgegangen wird: Sie werden als integer-Wert
>> gespeichert, und zwar die Anzahl der Sekunden seit dem 1.1.1970.
>>
> Na, da muss wohl schnell eine Änderung her, sonst gibt es bald (bzw.
> schon jetzt) ein 2037-Problem?!

So einunddreißig Jährchen gehen natürlich ruck-zuck rum.

> Ich dachte, man hätte aus dem
> Y2K-Problem gelernt,

Huh? Die meisten Systeme, die den Unix-Timestamp jetzt benutzen, wurden
spezifiert, bevor Y2K in aller Munde war.

Bye
Achim

Re: Osterberchnung

am 15.06.2006 21:28:32 von Norbert Melzer

Micha Kuehn schrieb:
> Matthias P. Wuerfl schrieb:
>> Jein. Es ist eine Einschränkung in der Art und Weise, wie unter U=
nix mit=20
>> Datumswerten umgegangen wird: Sie werden als integer-Wert gespeichert,=
=20
>> und zwar die Anzahl der Sekunden seit dem 1.1.1970.
>>
>> Grüße, Matthias
>=20
> Na, da muss wohl schnell eine Änderung her, sonst gibt es bald (bz=
w.=20
> schon jetzt) ein 2037-Problem?! Ich dachte, man hätte aus dem=20
> Y2K-Problem gelernt, Unix sei viel besser als alles andere und übe=
rhaupt...

Bis es soweit ist, hat die Welt das kapiert (wir fangen ja gerade damit
an) und auf einen 64 Bittigen Timestamp umgestellt, der dürfte dann =
ne
ganze weile halten:

Anzahl Sekunden =3D s =3D 2**65 =3D 36893488147419103232

Anzahl Stunden =3D h =3D s / 3600 =3D 10248191152060862,008888888888889
also rund 10248191152060862 Stunden

Anzahl Tage =3D d =3D h / 24 =3D 427007964669202,58333333333333333
also rund 427007964669202 Tage

Anzahl Jahre =3D a =3D d / 365,25 =3D 1169084092181,2511978097193702943
also rund 1169084092181 Jahre

Das sind in Worten:
einebillion, einhundertneunundsechzigmilliarden,
vierundachtzigmillionen, zweiundneunzigtausend und
einhunderteinundachtzig Jahre.

Davon hätten wir bisher ca 36,5 "verbraucht", bis uns dann die letzt=
en
1169084092144,5 Jahre "ausgehen" haben wir den Kalender eh wieder ein
paar Tausend mal umgestellt, oder kommen aufgrund der erreichten
Transzendenz ganz ohne Computer und/oder Kalender aus :-)

MFG
Norbert

PS: Ich habe jetzt nicht mit der genauen Tageszahl pro Jahr und mit
gerundeten Werten gerechnet, weil es bei einer Zahl dieser Größ=
enordnung
nicht mehr auf ein paar Tausend Jahre mehr oder weniger ankommt. So wie
die Zahl da steht ist zu erkennen, daß WIR das Ende nicht mehr erleb=
en
werden und uns um ungenauigkeiten in meiner Rechnung also keinen Kopf
mehr machen brauchen :-)
Obwohl, durch eine ähnliche Denkweise entstand ja erst die Y2K
Problematik....

Re: Osterberchnung

am 15.06.2006 21:44:25 von Micha Kuehn

Achim Peters schrieb:
> So einunddreißig Jährchen gehen natürlich ruck-zuck rum.

Beim Jahr-2000-Problem hat man auch genau so gedacht. Wer rechnet schon
damit, dass in 30 Jahren heutige Programme noch laufen? Aber heute
laufen (angeblich) noch Programme von vor 30 Jahren...

>> Ich dachte, man hätte aus dem
>> Y2K-Problem gelernt,
>
> Huh? Die meisten Systeme, die den Unix-Timestamp jetzt benutzen, wurden
> spezifiert, bevor Y2K in aller Munde war.

Ja, aber es sind nun schon einige Jahre seitdem rum, da hätte man doch
schon mal was tun können, oder?

Micha
--
Persönliche Mails: Bitte nur als reply - und als Wurmkur werden alle
Mails > 100 KB automatisch und unbesehen gelöscht!

Re: Osterberchnung

am 15.06.2006 21:51:56 von Achim Peters

Norbert Melzer wrote:
> Micha Kuehn schrieb:
>> Matthias P. Wuerfl schrieb:
>>> Jein. Es ist eine Einschränkung in der Art und Weise, wie unter Unix mit
>>> Datumswerten umgegangen wird: Sie werden als integer-Wert gespeichert,
>>> und zwar die Anzahl der Sekunden seit dem 1.1.1970.
>>>
>>> Grüße, Matthias
>> Na, da muss wohl schnell eine Änderung her, sonst gibt es bald (bzw.
>> schon jetzt) ein 2037-Problem?! Ich dachte, man hätte aus dem
>> Y2K-Problem gelernt, Unix sei viel besser als alles andere und überhaupt...
>
> Bis es soweit ist, hat die Welt das kapiert (wir fangen ja gerade damit
> an) und auf einen 64 Bittigen Timestamp umgestellt, der dürfte dann ne
> ganze weile halten:
>
> Anzahl Sekunden = s = 2**65 = 36893488147419103232

Huh? Mit n Bit hat man 2 ** n unterschiedliche Werte darstellen, mit 64
Bit also 18446744073709551616.

> Das sind in Worten:
> einebillion, einhundertneunundsechzigmilliarden,
> vierundachtzigmillionen, zweiundneunzigtausend und
> einhunderteinundachtzig Jahre.

Folglich sind's nur 584 Milliarden Jahre. Wird auch schon wieder eng ...

Bye
Achim

Re: Osterberchnung

am 15.06.2006 21:57:31 von Norbert Melzer

Achim Peters schrieb:
> Norbert Melzer wrote:
>> Anzahl Sekunden = s = 2**65 = 36893488147419103232
>
> Huh? Mit n Bit hat man 2 ** n unterschiedliche Werte darstellen, mit 64
> Bit also 18446744073709551616.

Oooops... Kleiner Denkfehler meinerseits... Du hast ja recht...

>> Das sind in Worten:
>> einebillion, einhundertneunundsechzigmilliarden,
>> vierundachtzigmillionen, zweiundneunzigtausend und
>> einhunderteinundachtzig Jahre.
>
> Folglich sind's nur 584 Milliarden Jahre. Wird auch schon wieder eng ...

Aber auch DAS werden wir nicht mehr erleben :-)

> Bye
> Achim

Bis denn!
Norbert

Re: Osterberchnung

am 15.06.2006 23:23:37 von Detlef Sax

On Thu, 15 Jun 2006 21:44:25 +0200, Micha Kuehn wrote:
[...]
>> Huh? Die meisten Systeme, die den Unix-Timestamp jetzt benutzen, wurden
>> spezifiert, bevor Y2K in aller Munde war.
>
> Ja, aber es sind nun schon einige Jahre seitdem rum, da hätte man doch
> schon mal was tun können, oder?
[...]

Man hätte auch eingezahlte Rentengelder, eingezahlte
Arbeitslosenversicherungsbeiträge und eingezahlte
Krankenkassenbeiträge zu einem Teil verzinslich anlegen können.

"Spare in der Zeit, so hast Du in der Not."

Hätte, wäre, wenn,...

Y2K war ja in der Wirtschaft auch ein Problem.

Da hatte man dann Probleme Programmierer zu finden die noch FORTRAN
oder ähnliche Fossilien können und sich auf die Schnelle in schlecht
dokumentierte Software einarbeiten konnten die zudem von anderen
geschrieben war.

Löcher flicken scheint manchem Entscheidungsträger einfacher als neu
machen. Das ist überall so.

Das ist ja alles korrekt und gut gelaufen. Bis zum 31.12.1999.
Erst mal abwarten. Wird schon alles gut.
KEIN GRUND ZUR PANIK als oberste Bürgerpflicht,

Aber dennoch vorher jede Menge phantasievolle Horrorszenarien in den
einschlägigen Blut- und Weltuntergangsmedien.

Viel ist ja auch nicht passiert. Die Horrorszenarien sind
ausgeblieben. Kein Kernkraftwerk ist verreckt und hat die halbe Erde
verseucht. Zumindest nicht nach dem 1.1.2000. Kein Satellit ist auf
eine Millonenstadt abgestürzt. Cruise Missiles starteten nicht wegen
Softwarefehler. Die Weltwirtschaft ist auch nicht zusammengebrochen.

Aber die Panik davor war schon groß. Zumindest in den üblichen
verdächtigen Medien.
Damals vor dem 31.12.1999.


Syntax Error in File: wuergd.php at line 1024.
Unknown Expression: __BIRDFLU.

Detlef
--
KEINE PANIK!

Re: Osterberchnung

am 16.06.2006 00:12:16 von Niels Braczek

Achim Peters schrieb:
> Norbert Melzer wrote:
>> Micha Kuehn schrieb:

>> Bis es soweit ist, hat die Welt das kapiert (wir fangen ja gerade dami=
t
>> an) und auf einen 64 Bittigen Timestamp umgestellt, der dürfte dann =
ne
>> ganze weile halten:
>>=20
>> Anzahl Sekunden =3D s =3D 2**65 =3D 36893488147419103232
>=20
> Huh? Mit n Bit hat man 2 ** n unterschiedliche Werte darstellen, mit 64=

> Bit also 18446744073709551616.
>=20
>> Das sind in Worten:
>> einebillion, einhundertneunundsechzigmilliarden,
>> vierundachtzigmillionen, zweiundneunzigtausend und
>> einhunderteinundachtzig Jahre.
>=20
> Folglich sind's nur 584 Milliarden Jahre. Wird auch schon wieder eng ..=


Bis dahin ist da Universum mindestens einmal kollabiert. Im nächsten
Universum können wir dann ja gleich mit 64 Bit beim Urknall anfangen.
Muss ich gleich mal aufschreiben, dass wir's nicht vergessen ;-)

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Osterberchnung

am 16.06.2006 02:06:00 von gregor herrmann

On Wed, 14 Jun 2006 18:46:01 +0200, Matthias P. Wuerfl wrote:

>> ich hab mir ein kleines skritp geschriebn um alle wichtig feiertag
>> auszurechen, die von ostern abhängig sind.
> Das hast Du umsnst gemacht. Das gibt es schon fertig als PHP-Funktion

es gibt aschermittwoch() und pfingstmontag()?
interessant!


gregor
--
.''`. http://info.comodo.priv.at/ | gpg key ID: 0x00F3CFE4
: :' : debian: the universal operating system - http://www.debian.org/
`. `' member of https://www.vibe.at/ | how to reply: http://got.to/quote/
`- NP: Patti Page: Gentle On My Mind

Re: Osterberchnung

am 16.06.2006 06:31:50 von Erik Sellmer

Micha Kuehn wrote:
> Matthias P. Wuerfl schrieb:
>> Jein. Es ist eine Einschränkung in der Art und Weise, wie unter Unix
>> mit Datumswerten umgegangen wird: Sie werden als integer-Wert
>> gespeichert, und zwar die Anzahl der Sekunden seit dem 1.1.1970.
>>
>> Grüße, Matthias
>
> Na, da muss wohl schnell eine Änderung her, sonst gibt es bald (bzw.
> schon jetzt) ein 2037-Problem?! Ich dachte, man hätte aus dem
> Y2K-Problem gelernt, Unix sei viel besser als alles andere und überhaupt...

Linux und PHP sind Freie Software, jeder ist zur Mitwirkung eingeladen.
Also nicht lange gemeckert, sondern an die Arbeit!

Erik

Re: Osterberchnung

am 16.06.2006 19:25:44 von unknown

Post removed (X-No-Archive: yes)

Re: Osterberchnung

am 16.06.2006 19:36:48 von Erik Sellmer

Dirk Sohler wrote:
> Neugi schrieb 2006-06-14, 17:27 Uhr
>> jetzt wo ich zum spass einfach mal die nächsten 1000 jahre anzeigen
>> lassen wollte ist mir aufgefallen das ich nur bis 2037 berechnen kann.
>>
>> ist das eine beschränkung von php, das man nicht weiter in die zukunft
>> anzeigen lassen kann?
>
> Aus der englischsprachigen Wikipedia (der Artikel dort hat einfach
> irgendwie mehr subtilen Humor *g*):
>
> "In computing, the year 2038 problem may cause some computer software to
> fail in or about the year 2038. The problem affects programs that use the
> POSIX time representation, which represents time as the number of seconds
> (ignoring leap seconds) since January 1, 1970. [...] The latest time that
> can be represented in this format, following the POSIX standard, is
> 03:14:07 UTC on Tuesday, January 19, 2038. [...]"
>
> Ach ja... *g*:
>
> "Using a 64-bit value introduces a new wrap around date in about 290
> billion years, on Sunday, December 4, 292,277,026,596 15:30:08 UTC.
> However, this problem is not widely regarded as a pressing issue."

Hab ich nicht mal irgendwo gehört oder gelesen, dass die Erde in ca. 4
Milliarden Jahren wahrscheinlich verglüht? :-)

Erik

Re: Osterberchnung

am 16.06.2006 23:47:05 von Oliver Block

Neugi wrote:
> ist das eine beschränkung von php, das man nicht weiter in die zukunft
> anzeigen lassen kann?

Die PHP-Funktionen umgehen.

Gruß,

Oliver

Re: Osterberchnung

am 19.06.2006 19:51:37 von unknown

Post removed (X-No-Archive: yes)

Re: Osterberchnung

am 19.06.2006 21:08:45 von Detlef Sax

On Mon, 19 Jun 2006 19:51:37 +0200, Dirk Sohler wrote:
[...]
>
> Immerhin ist der vierte Dezember 292277026596 ein Sonntag :)

Ha! Glück gehabt.
Da habe ich sicher schon frei.

Detlef