Beitrag von H.Fehde (724 Beiträge) am Dienstag, 9.Juli.2002, 14:10. WWW: bei123.de
Kalenderwoche je Datum berechnen ?
Kennt jemand ne Routine, wie man aus einem aktuellen Datum die zugehörige Kalenderwoche berechnen kann ?
Besten Dank im Voraus - Harald
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 9.Juli.2002, 14:58.
Re: Kalenderwoche je Datum berechnen ?
Du bekommst jetzt meinen Schatz, hat mich Stunden (oder Wochen?) gekostet ;-)
wenn du das heutige datum haben willst, mach aus Wunschdate einfach ein "jetzt"
<perl>
$Jahr=datum($wunschdate,"Jahr"); # wunschdate ist übergabeparameter
$_kw1="04.01.$Jahr"; # 4.1 liegt immer in der ersten kw
$_tag=datum($_kw1,"Wochentagzahl")-1; # Montag der 1ten kw
$kw1=datum("$_kw1-$_tag","intern"); # bestimmen (4.1-(Wochentag-1))
$_kw1ny="04.01.".($Jahr+1); # das gleiche fürs nächste Jahr
$_tagny=datum($_kw1ny,"Wochentagzahl")-1;
$kw1ny=datum("$_kw1ny-$_tagny","intern");
$holedatum=datum($wunschdate,"intern"); # datum zum vergeleich umschreiben
## Kalenderwochen des Jahres zählen
for ($i=$kw1; $i lt $kw1ny;$i=datum("$i+7","intern")) # alle Montage bestimen
{
if ($holedatum ge $datum_merken && $holedatum lt $i)
{
out "<b>Kalenderwoche: $kw Datum:".datum($wunschdate,"kurz")."</b><br>";
}
$kw++;
$datum_merken=$i;
}
</perl>
oh gott, jetzt hab ich es verschenkt... *g*
Sander
Antworten
Beitrag von H.Fehde (724 Beiträge) am Dienstag, 9.Juli.2002, 15:53. WWW: bei123.de
Re: Kalenderwoche je Datum berechnen ?
Hallo Sander,
das Teil ist SPITZE !!! - besten Dank für Deinen Schatz, weiß garnicht, wie ich mich revangieren soll -
höchstens mit einer weiteren Frage: Kennst Du auch ne Routine, die die unregelmäßigen Feiertage berechnet, also z.B. Ostern, Karfreitag oder Pfingsten ?
Ich hab von diesen 'heiligen' Tagen absolut keine Plan und weiß auch nicht, wie das Datum jweils zustande kommt - vielleicht durch Würfeln vom Papst?
Ansonsten müßte ich die Daten für jedes Jahr in ner extra Datei hinterlegen - ziemlich aufwendig, darf dann der User machen....
Gruß Harald
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 9.Juli.2002, 16:11.
Re: Kalenderwoche je Datum berechnen ?
ne, tut mir leid, weiß auch nicht wie die berechnet werden. Ich kann dir nur sagen, in der Woche, in der der 4.1 liegt, ist die erste kw - um diese Info zu bekommen, dauerts schon stunden und kostet nerven ;-).
Sander
Antworten
Beitrag von H.Fehde (724 Beiträge) am Dienstag, 9.Juli.2002, 16:21.
Re: Kalenderwoche je Datum berechnen ?
..nochmals vielen Dank
dann frag ich mal unseren Pfarrer, vielleicht hat der ne Ahnung ;-)
Harald
Antworten
Beitrag von hempelr (1976 Beiträge) am Dienstag, 9.Juli.2002, 20:43.
Re: Kalenderwoche je Datum berechnen ?
haste gut gedacht, der Pfarre müßte es eigentlich wissen. Nur kannst du die Feiertage nicht nach dem Kalender sondern nach den Sonnenwenddaten berechnen.
Du mußt auf alle Fälle zunächst eine DB oder auch eine Liste mit den Jahreszahlen und den dazugehörigen Sommer- und Wintersonnenwenddaten (entspricht wohl Winteranfang und Sommeranfang)
Die Daten sind gut aufbereitet unter http://www.uni-bamberg.de/ktheo/liturgie/@fkal.html zu finden, kannste ja mal in ne DB für die Bib zum Einbinden für alle basteln - das wäre echt ein Plan
Grüße
Ruben
Antworten
Beitrag von H.Fehde (724 Beiträge) am Mittwoch, 10.Juli.2002, 12:46. WWW: bei123.de
Re: Ne ne - Osterformel !Kalenderwoche je Datum berechnen ?
Antworten
Beitrag von hempelr (1976 Beiträge) am Mittwoch, 10.Juli.2002, 15:34.
Re: Ne ne - Osterformel !Kalenderwoche je Datum berechnen ?
Hey, cool,
haste die Formel von http://public.rz.fh-wolfenbuettel.de/~hom/excel/xlostern.htm genommen?
Hab grad eben mal nach Osterformel in google gesucht, und das gefunden. Na dann kann ja die Kalenderbastelei losgehen *g*
Wenn da sogar Gauß Hand angelegt hat, wie sollen wir "Würmchen" denn dann drauf kommen....... *ggg*
Ruben
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 10.Juli.2002, 16:00.
Re: Ne ne - Osterformel !Kalenderwoche je Datum berechnen ?
Das wär doch was für die bib ;-)
Antworten
Beitrag von H.Fehde (724 Beiträge) am Mittwoch, 10.Juli.2002, 16:33. WWW: bei123.de
Re: Ne ne - Osterformel !Kalenderwoche je Datum berechnen ?
Hab eben mal ne neue Kalenderversion in die bib gestellt, allerdings OHNE Osterformel - da sollen sich mal andere drum kümmern - die Fixtage sind bei mir schon drin.
http://baseportal.de/cgi-bin/baseportal.pl?htx=/iqws/Kalender2/kalender
Mir liegt vielmehr daran, ne Lösung zu finden, die ohne die von Javascript gesetzen Datumsgrenzen arbeitet ..und dann mit Osterformel. 1902 bis 2037 ist mir einfach zu wenig.
Gruß Harald
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 10.Juli.2002, 17:02.
Re: Ne ne - Osterformel !Kalenderwoche je Datum berechnen ?
uaaaahhh - jetzt hast du es weiter verschenkt ;-)
Sander
Antworten
Beitrag von horstees (229 Beiträge) am Samstag, 11.Januar.2003, 20:45.
Re: Kalenderwoche je Datum berechnen ?
Hallo Sander!
Bei der Anwendung Deiner KW Berechnung fiel mir auf, fiel mir auf, daß leider einige Termine aus einem Programm nicht einer Kalenderwoche zugeordnet werden, bzw. nicht angezeigt werden.
Es sind ausnahmslos Termine, die um den Jahreswechsel herum liegen.
Nach einigem Google'n hab ich da merkwürdige, für mich völlig neue Entdeckungen gemacht.
Wär hätte gedacht, daß ein Jahr mal 52, mal 53 KWs hat und das eine Kw schon im alten Jahr beginnen kann und eine alte Kw noch bis ins neue jahr andauern kann.
Toll!
Ich lasse jetzt die for Schleife eine Woche länger zählen ( le statt lt)
und fange die 'Sondertermine zum Jahreswechsel' vorher ab. Zum Jahreswechsel brauche ich noch den $kw_merker.
Getestet hab ich das jetzt bis ins Anfang 2005; 2004 hat 53 KWs.
Verglichen hab ich nur mit einem käuflichen Kalender aus dem Schreibwarenladen.
Ich kann nicht garantieren, wie sich der Code zum Jahreswechsel 2016/2017 verhält (War es ein Schaltjahr?
Wo steht der Mond? Wie geht es Freund Gauss? Gibt es baseportal noch? Ist das Relationsfeld schon repariert? und und und ) ;-).
Hier mein Code:
get "VON sort=VON","../nabu/nabu_programm_test","programm";
while(get_next("programm"))
{
$kw=0;
$wunschdate = $VON;
$Jahr=datum($wunschdate,"Jahr"); # wunschdate ist übergabeparameter
$_kw1="04.01.$Jahr"; # 4.1 liegt immer in der ersten kw
$_tag=datum($_kw1,"Wochentagzahl")-1; # Montag der 1ten kw
$kw1=datum("$_kw1-$_tag","intern"); # bestimmen (4.1-(Wochentag-1))
$_kw1ny="04.01.".($Jahr+1); # das gleiche fürs nächste Jahr
$_tagny=datum($_kw1ny,"Wochentagzahl")-1;
$kw1ny=datum("$_kw1ny-$_tagny","intern");
$holedatum=datum($wunschdate,"intern"); # datum zum vergeleich umschreiben
## Kalenderwochen des Jahres zählen
if (datum($kw1ny,"Jahr") eq $Jahr && $holedatum ge $kw1ny) #Beginnt die 1.Kalenderwoche des neuen Jahres bereits im alten Jahr?
{$kw=1;out "<b>Kalenderwoche:$kw Datum:".datum($wunschdate,"lang")."</b>YYYYY<br>";}
if ( $holedatum lt $kw1)#Klingt die letzte KW des alten Jahres erst im neuen Jahr aus? !!! $kw1 hat soeben einen neuen Wert für das laufende Jahr angenommen!!!
{out "<b>Kalenderwoche:$kw_merker Datum:".datum($wunschdate,"lang")."</b>XXXXX<br>";}
for ($i=$kw1;$i le $kw1ny;$i=datum("$i+7","intern")) # alle Montage bestimmen
{
if ($holedatum ge $datum_merken && $holedatum lt $i)
{
out "<b>Kalenderwoche:$kw Datum:".datum($wunschdate,"lang")."</b><br>";$kw_merker = $kw;# brauch ich zum Jahreswechsel
}
$kw++;
$datum_merken=$i;
}
</perl>
ciao horstees
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 12.Januar.2003, 01:06.
Re: Kalenderwoche je Datum berechnen ?
Der Code war so geschrieben, das er alles ab der Kw 1 anzeigt. Kw 1 ist die Woche, wo der 4.1 drin liegt. Ist es ein montag werden dann halt die tage davor nicht zu diesem Jahr dazu gerechnet. Bei einem durchgehenden Kalender stimmt das alles.
Sander
Antworten