Seite 1 von 1
Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Donnerstag 22. April 2010, 17:53
von nubie2001
Hi
jemand ne Idee wie ich von der aktuellen Kalenderwoche bis zur letzten Kalenderwoche die Kalenderwoche berechne
so krieg ich ja die aktuelle Kalenderwoche und ab da muss ich die anderen ohne Rücklauf bis zum Jahresende berechnen.
Besten Dank.
Verfasst: Donnerstag 22. April 2010, 18:09
von mutetella
Hallo,
versuch' mal
Code: Alles auswählen
import datetime
today = datetime.date.today()
lastday = datetime.date(2010,12,31)
kw = lastday.isocalendar()[1] - today.isocalendar()[1]
Gruß
mutetella
Verfasst: Donnerstag 22. April 2010, 18:11
von Hyperion
Ein Jahr hat doch immer 52 Wochen oder nicht? Insofern wäre das eine einfache Subtraktion
Alternativ sollte das doch recht einfach sein, da Du Dir nur ein datetime-Object vom 31.12.YYYY erstellen musst:
Code: Alles auswählen
In [18]: present = datetime.now()
In [19]: last = datetime(present.year, 12, 31)
In [20]: last.strftime("%W")
Out[20]: '52'
In [21]: present.strftime("%W")
Out[21]: '16'
In [23]: int(last.strftime("%W")) - int(present.strftime("%W"))
Out[23]: 36
Verfasst: Donnerstag 22. April 2010, 18:25
von mutetella
Hyperion hat geschrieben:Ein Jahr hat doch immer 52 Wochen oder nicht?
Eben nicht. Es gibt auch Jahre mit 53 KW's. Es gibt nur wenige verlässliche Größen bei Kalenderberechnungen...
Woher kommt datetime.now()?
Gruß
mutetella
Verfasst: Donnerstag 22. April 2010, 18:59
von lunar
@mutetella: "from datetime import datetime"
@Hyperion: Lies Wikipedia zu diesem Thema. Die "erste" Kalenderwoche eines Jahres ist nicht so trivial, wie der Name vermuten lässt.
Verfasst: Donnerstag 22. April 2010, 19:18
von nubie2001
Danke erstmal so weit
und wie krieg ich des jetzt hin dass da inner Liste steht:
16
17
18
19
20
21
22
...
52
Verfasst: Donnerstag 22. April 2010, 19:26
von gkuhl
Das steht z.B. im offiziellen
Tutorial.
Verfasst: Donnerstag 22. April 2010, 21:04
von mutetella
nubie2001 hat geschrieben:und wie krieg ich des jetzt hin dass da inner Liste steht:
Indem zu Zeile 5 aus meinem Beispiel durch diese ersetzt:
Code: Alles auswählen
kw = range(today.isocalendar()[1], lastday.isocalendar()[1]-1)
bzw. ab Python 3.x
Code: Alles auswählen
kw = list(range(today.isocalendar()[1], lastday.isocalendar()[1]-1))
Gruß
mutetella
Verfasst: Donnerstag 22. April 2010, 23:25
von nubie2001
jo danke habs schon selbst gelöst gehabt war recht easy
Code: Alles auswählen
todayweek = lastday.isocalendar()[1]
lastweek = today.isocalendar()[1]
for week in range(lastweek,todayweek+1):
self.wfile.write('''<option>'''+str(week)+'''</option>''')
Re: Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Dienstag 3. August 2021, 17:52
von peter.stiehlmann
Wenn du in Python mit Datumswerten rechnen musst kann ich die Arrow Library empfehlen:
https://arrow.readthedocs.io
Beispiel um einfach an die aktuelle Kalenderwoche zu kommen:
Da Kalenderwochen Berechnen tricky sein kann, anschließen überprüfen ob das was raus kommt auch wirklich stimmt, denn eine KW beginnt nicht zwangsläufig am 01.01 und es gibt Jahre wie z.b. 2026 die 53 KWs haben.
Ich nutze dazu immer einen online Kalender wie diesen hier
https://kwheute.de um zu prüfen ob die Werte die ich rausbekomme auch stimmen.
Re: Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Dienstag 3. August 2021, 20:03
von __blackjack__
@peter.stiehlmann: `isoweekday()` ist der Wochentag, nicht die Kalenderwoche.
Re: Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Dienstag 3. August 2021, 20:32
von peter.stiehlmann
Stimmt da war ich zu schnell, leider kann ich den Beitrag nicht editieren, korrekt wäre:
Der 2. Wert (Index 1) im Tuple wäre dann die "ISO week number".
Für diesen speziellen Fall braucht man nicht unbedingt arrow, aber wenn man mit dem Datumswerten weiter rumhantieren muss lernt man es schnell zu schätzen.
Re: Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Dienstag 3. August 2021, 20:45
von Dennis89
Naja so schnell warst du gar nicht, immer hin hast du auf einen Beitrag von vor 11 Jahren geantwortet

Re: Berechnung aktuelle Kalenderwoche bis Kalenderwoche 52
Verfasst: Dienstag 3. August 2021, 20:54
von peter.stiehlmann
Ich sollte eindeutig mehr schlafen
