Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aktuelle Kalenderwoche ausgeben?

1,493 views
Skip to first unread message

Jörg Reinking

unread,
Jan 5, 1999, 3:00:00 AM1/5/99
to
Einen wunderschönen!

Weiß jemand eine Möglichkeit, per JavaScript die aktuelle Kalenderwoche
ausgeben zu lassen?

Bedank im voraus!

Jörg


Dietmar Meier

unread,
Jan 5, 1999, 3:00:00 AM1/5/99
to
Hi,
Jörg Reinking schrieb in Nachricht <369209C4...@web-werk.de>...

>Weiß jemand eine Möglichkeit, per JavaScript die aktuelle Kalenderwoche
>ausgeben zu lassen?

Ich weiss nicht, wie die Kalenderwoche genau definiert wird.
Unter der evtl. falshcen Annahme, dass der erste Montag im
Jahr der erste Tag der ersten Kalenderwoche ist, liefert die
folgende Funktion die Kalenderwoche zurueck:
function kw() {
var heute = new Date(), J = heute.getYear(), Mo = 0;
// ersten Montag im Jahr suchen (leere Schleife):
while (new Date(J, 0, ++Mo).getDay() != 1);
Mo = new Date(J, 0, Mo);
// Millisekunden pro Woche:
var msWo = 604800000;
return 1 + Math.floor((heute - Mo) / msWo);
}
Schreib mal, ob's so hinkommt.
«
--
Ciao, Dietmar H. G. Meier
NEU & KOSTENLOS! http://buecher.virtualave.net
Gebrauchte Buecher kaufen - verkaufen - tauschen - verschenken

Jörg Reinking

unread,
Jan 5, 1999, 3:00:00 AM1/5/99
to dh...@gmx.net

Dietmar Meier wrote:

> Hi,
> Jörg Reinking schrieb in Nachricht <369209C4...@web-werk.de>...
>
> >Weiß jemand eine Möglichkeit, per JavaScript die aktuelle Kalenderwoche
> >ausgeben zu lassen?
>
> Ich weiss nicht, wie die Kalenderwoche genau definiert wird.
> Unter der evtl. falshcen Annahme, dass der erste Montag im
> Jahr der erste Tag der ersten Kalenderwoche ist,

ist er !

> liefert die folgende Funktion die Kalenderwoche zurueck:
> function kw() {
> var heute = new Date(), J = heute.getYear(), Mo = 0;
> // ersten Montag im Jahr suchen (leere Schleife):
> while (new Date(J, 0, ++Mo).getDay() != 1);
> Mo = new Date(J, 0, Mo);
> // Millisekunden pro Woche:
> var msWo = 604800000;
> return 1 + Math.floor((heute - Mo) / msWo);
> }
> Schreib mal, ob's so hinkommt.
> --
> Ciao, Dietmar H. G. Meier
> NEU & KOSTENLOS! http://buecher.virtualave.net
> Gebrauchte Buecher kaufen - verkaufen - tauschen - verschenken

Kommt prima hin! Besten Dank!

Jörg

Hatto von Hatzfeld

unread,
Jan 5, 1999, 3:00:00 AM1/5/99
to
Jörg Reinking schrieb in Nachricht <369209C4...@web-werk.de>...
>Einen wunderschönen!

>
>Weiß jemand eine Möglichkeit, per JavaScript die aktuelle Kalenderwoche
>ausgeben zu lassen?


Ich weiß da nur: Selbst programmieren.

Man muß wissen: 1. Die Woche beginnt mit dem Montag, 2. Die erste
Kalenderwoche ist die, in der der 4. Januar liegt.
Es gibt aber ein paar Fallstricke (wenn z.B. der 2. Jan. 2000 zur 52.
Kalenderwoche 1999 gehört.)

Auf der Seite http://www.salesianer.de/util/kalender.html habe ich diese und
andere Berechnungen in JS programmiert (Infos in der dortigen FAQ). Eine
häßliche, abgespeckte, aber downloadbare Version findest Du unter
http://www.salesianer.de/util/kal4dnld.html . Ich befürchte, das Skript ist
für Deinen Bedarf jedoch viel zu umfangreich, weil ich alle Jahre von 1 bis
2499 n.Chr. berücksichtigt habe und daher die JS-eigenen Datumsfunktionen
nur eingeschränkt benutzen konnte.

Grüße,
Hatto

--
Sehr beachtenswerte Quellen:
SELFHTML von Stefan Muenz: http://www.teamone.de/selfhtml/
FAQ: http://www.mintert.com/javascript/de.comp.lang.javascript.html
Christines JavaScript-Notizen: http://www.screenExa.net/js_notiz/


Hatto von Hatzfeld

unread,
Jan 5, 1999, 3:00:00 AM1/5/99
to
Jörg Reinking schrieb in Nachricht <36922B94...@web-werk.de>...

>
>
>Dietmar Meier wrote:
>>
>> Ich weiss nicht, wie die Kalenderwoche genau definiert wird.
>> Unter der evtl. falshcen Annahme, dass der erste Montag im
>> Jahr der erste Tag der ersten Kalenderwoche ist,
>
>ist er !


Nein, ist er nicht. Die _Annahme_ ist falsch. Die Woche beginnt (seit 1976)
zwar mit dem Montag (nicht mehr mit Sonntag wie mancherorts zuvor), aber die
erste Woche des Jahres kann schon vor Neujahr beginnen, wie das 1998 der
Fall war, wo die erste Woche mit Montag, dem 29. Dezember 1997, begann.

Die erste Woche des Jahres ist definiert als die Woche, in die mindestens 4
der ersten 7 Januartage fallen (also die Woche, in der der 4. Januar liegt
bzw. - gleichbedeutend - der erste Donnerstag). Beides wurde damals
definiert in der DIN 1355 (1974). Inhaltlich gleich regelt das die
Internationale Norm ISO 8601 (1988), die von der Europäischen Union als EN
28601 (1992) übernommen und in Deutschland als DIN EN 28601 (1993) umgesetzt
wurde.

Quellen:
http://www.engelschall.com/u/sb/download/Date-Calc/DIN1355/
http://www.salesianer.de/util/kalender.html
http://www.cl.cam.ac.uk/~mgk25/iso-time.html
http://isa.dknet.dk/~c-t/calendar.html

Aber allmählich wird's offtopic...

Grüße,
Hatto


Dietmar Meier

unread,
Jan 8, 1999, 3:00:00 AM1/8/99
to
Hi,
Hatto von Hatzfeld schrieb in Nachricht <76tcu9$f0m$1...@fermi.tro.net>...

>Die erste Woche des Jahres ist definiert als die Woche, in die mindestens 4
>der ersten 7 Januartage fallen (also die Woche, in der der 4. Januar liegt
>bzw. - gleichbedeutend - der erste Donnerstag). Beides wurde damals
>definiert in der DIN 1355 (1974).

Interessant, was alles genormt wird. Haben die denn _nichts_ vergessen?

Folgende Korrektur sollte hinkommen (vorausgesetzt, die Systemzeit
ist nicht auf ein Datum vor 1976 gesetzt, was afaik aber auf keinem
gaengigen System moeglich ist ...

Oder gibt Math.floor(-1.5) auf manchen Systemen "-1" zurueck?

Bedeutung der Rueckgabewerte:
0 Kalenderwoche 53 des Vorjahres
1..52 Kalenderwoche 1..52
-1 Kalenderwoche 1 des Folgejahres

function kw() { // (c) 1999 dh...@gmx.net
var heute = new Date(), J = heute.getYear(), Mo = 1;
while (new Date(J, 0, Mo++).getDay() != 4);
Mo = new Date(J, 0, Mo+3); // Montag der Woche 2
var kw = 2 + Math.floor((heute-Mo)/604800000);
var wt3112 = new Date(J, 11, 31).getDay();
return (kw == 53 && wt3112 < 4 && wt3112 > 0)? -1 : kw;
}
«

Dietmar Meier

unread,
Jan 8, 1999, 3:00:00 AM1/8/99
to
Ich irrte in Nachricht <774gq6$bsq$3...@sun579.rz.ruhr-uni-bochum.de>...

Oops, kleine Korrektur noch:

Bedeutung der Rueckgabewerte:
0 Kalenderwoche 53 des Vorjahres

1..53 Kalenderwoche 1..53
^ ^


-1 Kalenderwoche 1 des Folgejahres

0 new messages