Seite 1 von 1
Datum berechnen
Verfasst: Dienstag 9. September 2008, 10:20
von Lonestar
Moin,
irgendwie stehe ich hier aufm Schlauch. Ich versuche nu schon ne ganze Weile ganz einfach zu bestimmen Welches Datum Heute + n-Tage ergibt.
einfachstes Beispiel: n = 1 --> welches Datum ist morgen?
versuchen wollte ich das erst mal mit den Standardmodulen.
http://docs.python.org/dev/library/datetime
hilft mir aber irgendwie nicht wirklich weiter. Ich kann zwar ein Delta zwischen 2 Daten bestimmen und auch andere tolle Sachen machen aber irgnedwie nich das was ich möchte. Habe ich was überlesen, oder ist das schwerer zu machen als ich dachte?
Vielleicht gibts ja auch noch bessere Module für sowas, ich kenne mich da momentan nicht wirklich aus.
Verfasst: Dienstag 9. September 2008, 10:37
von Zap
datetime ist schon richtig:
Code: Alles auswählen
In [59]: dt = datetime.timedelta(days=4)
In [60]: datetime.date.today() + dt
Out[60]: datetime.date(2008, 9, 13)
Verfasst: Dienstag 9. September 2008, 10:44
von Lonestar
oh mann - so einfach
ich hatte das auch mal mit dem Delta versucht, dachte aber das ich dem Delta ein gültiges Datum geben müsste. Das machte dann keinen Sinn mehr für mich und für den Interpreter übrigens auch nicht mehr
Code: Alles auswählen
>>> delta = datetime.date(0,0,1)
File "<pyshell#54>", line 1
delta = datetime.date(0,0,1)
^
IndentationError: unexpected indent
danke für die schnelle Hilfe
Verfasst: Dienstag 9. September 2008, 11:08
von Leonidas
Lonestar hat geschrieben:ich hatte das auch mal mit dem Delta versucht, dachte aber das ich dem Delta ein gültiges Datum geben müsste. Das machte dann keinen Sinn mehr für mich und für den Interpreter übrigens auch nicht mehr
Ja, klar, wenn du es falsch einrückst, das soll man da sonst machen?
Verfasst: Dienstag 9. September 2008, 11:37
von Lonestar
Leonidas hat geschrieben:
Ja, klar, wenn du es falsch einrückst, das soll man da sonst machen?
ui - die Falsche Fehlerausgabe kopiert... sorry - damit hier alles seine Richtigkeit hat noch schnell die Fehlermeldung die ich dachte kopiert zu haben - auch wenns eigentlich ja völlig unsinnig ist
Code: Alles auswählen
>>> delta = datetime.date(0,0,1)
Traceback (most recent call last):
File "<pyshell#86>", line 1, in <module>
delta = datetime.date(0,0,1)
ValueError: year is out of range
aber bevor ich hier nur Müll poste noch ne Frage da ich erst heute Morgen angefangen habe mich mal mit den Time- und Datetimemodulen auseinanderzusetzen. Wie Komme ich denn am schönsten an das morgige Datum? Meine Variante an das Datetimeobjekt das das Heutige Datum darstellt scheint mir ein wenig umständlich - immerhin bekomme ich die gewünschten Daten:
Code: Alles auswählen
>>> import time
>>> import datetime
>>> temp = time.localtime()
>>> heute = datetime.date(temp.tm_year, temp.tm_mon, temp.tm_mday)
>>> morgen = heute + datetime.timedelta(days = 1)
>>> morgen
datetime.date(2008, 9, 10)
http://docs.python.org/dev/library/date ... time.today
wäre sicher ne schöne Variante - aber wenn ichs richtig kapiert habe ist das erst ab Version 2.6b vorhanden.
Verfasst: Dienstag 9. September 2008, 12:04
von Zap
Keine Ahnung wie lange es schon today gibt. Aber selbst bei meinem ältesten Python das ich aufm Rechner habe, funktioniert das.
Code: Alles auswählen
In [3]: import sys
In [4]: from datetime import date
In [5]: sys.version
Out[5]: '2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit (Intel)]'
In [6]: date.today()
Out[6]: datetime.date(2008, 9, 9)
Verfasst: Dienstag 9. September 2008, 12:48
von Leonidas
Zap hat geschrieben:
Keine Ahnung wie lange es schon today gibt. Aber selbst bei meinem ältesten Python das ich aufm Rechner habe, funktioniert das.
Das gibt es
seit Python 2.3.