Seite 1 von 1
Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 20:01
von _nohtyp_
Ich weiß, die Frage wurde schon oft gestellt. Trotzdem kann ich mein Problem nicht lösen:
Ich habe folgendes Datum und Zeit:
Ich versuche mit timedelta 45 Minuten draufzuaddieren:
Fehlermeldung:
Code: Alles auswählen
TypeError: cannot concatenate 'str' and 'datetime.timedelta' objects
Aber ich habe doch keinen string, oder doch?
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 20:36
von BlackJack
@_nohtyp_: Ganz offensichtlich hast Du da eine Zeichenkette. Das sagt die Ausnahme mehr als deutlich.

Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 20:41
von _nohtyp_
Also start_zeit wird so gebildet:
Code: Alles auswählen
start_zeit = datetime(int(jahr), int(monat), int(
tag), int(stunde), int(minute)).isoformat()
P.S: Ja, ich mache jetzt wieder das Vertretungsplan Tool.

Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 20:59
von Sirius3
@_nohtyp_: Du mußt Dich schon entscheiden, ob Du einen String willst oder nicht.
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:02
von _nohtyp_
Ich will das ganze im Datetime-Format. Wo werden strings erzeugt?
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:11
von EyDu
Quizfrage: Was macht die isoformat-Methode?

Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:16
von _nohtyp_
Wandelt in String um.

Ok, dass wusste ich nicht.
Und wie löse ich nun das Problem? Wenn ich isoformat weglasse, kommt: 'datetime.datetime' object has no attribute 'decode'
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:20
von BlackJack
@_nohtyp_: Wo kommt das? Nicht in dem bisher gezeigtem Code oder?
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:24
von _nohtyp_
_nohtyp_ hat geschrieben:Also start_zeit wird so gebildet:
Code: Alles auswählen
start_zeit = datetime(int(jahr), int(monat), int(
tag), int(stunde), int(minute)).isoformat()
Ich meine, wenn ich hier isoformat weglasse, läuft es nicht mehr. Wie löse ich jetzt das Problem mit end_zeit? Also wie beseitige ich den Fehler?
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 21:52
von Sirius3
@_nohtyp_: Dein Problem ist nicht, dass es mit »end_zeit« nicht funktioniert, sondern dass Dein Programm nicht mehr funktioniert, wenn Du »isoformat« wegläßt. Objekte werden am Besten erst dann in Strings umgewandelt, wenn sie ausgegeben werden.
Re: Zu Zeit Minuten addieren
Verfasst: Montag 17. März 2014, 22:37
von DaftWullie
@_nohtyp_:
bei mir geht das:
Code: Alles auswählen
>>> from datetime import timedelta, datetime
>>> start_zeit = datetime(1,2,3,4,5,6)
>>> start_zeit
datetime.datetime(1, 2, 3, 4, 5, 6)
>>> end_zeit = start_zeit + timedelta(minutes=45)
>>> print start_zeit.isoformat(), end_zeit.isoformat()
0001-02-03T04:05:06 0001-02-03T04:50:06

Re: Zu Zeit Minuten addieren
Verfasst: Dienstag 18. März 2014, 09:33
von Leonidas
Ja, das Problem ist ja auch, dass _nohtyp_ das durchaus in isoformat umwandeln muss, nur halt nach der Addition der Minuten und nicht davor.
Oder ups, habe ich jetzt die ganze Lösung schon verraten?
