problem mit datetime

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Joe-Waschl
User
Beiträge: 20
Registriert: Freitag 12. November 2010, 20:18

moin :)

habe ein kleines problem mit der formatierung der datums angabe, und komm nicht dahinter :roll:
bräuchte euren rat
die erste print ausgabe passt, so wollte ich das haben, aber die zweite will nicht ganz

gruß joe

Code: Alles auswählen

#!/usr/bin/python
#-*- coding: UTF-8 -*-

'''
Created on 17.02.2013
version: 1.1
@author: user1
'''

from datetime import datetime, timedelta

'''
now = aktuellezeit
l = kannenlaufzeit
z = kannzahl
a = Restliche laufzeit der aktuellen kanne
'''


now = datetime.now()

l = timedelta(minutes=(int(raw_input('Kannenlaufzeit: ')))) 
z = int(raw_input('Kannenzahl: '))
a = timedelta(minutes=(int(raw_input('Laufende Kanne läuft noch?: '))))

print 'Jetzt ist es', now.strftime('%d.%m.%Y %H:%M')
print 'Die GA endet um:',z * l + a + now.strftime('%d.%m.%Y %H:%M'), 'Uhr'

Code: Alles auswählen

Kannenlaufzeit: 30
Kannenzahl: 15
Laufende Kanne läuft noch?: 12
Jetzt ist es 21.02.2013 16:49
Die GA endet um:Traceback (most recent call last):

  File "/home/user1/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev.debug_2.5.0.2012040618/pysrc/pydevd.py", line 1346, in <module>
    debugger.run(setup['file'], None, None)
  File "/home/user1/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev.debug_2.5.0.2012040618/pysrc/pydevd.py", line 1060, in run
    pydev_imports.execfile(file, globals, locals) #execute the script
  File "/home/user1/workspace/laufzeit/laufzeit.py", line 30, in <module>
    print 'Die GA endet um:',z * l + a + now.strftime('%d.%m.%Y %H:%M'), 'Uhr'
TypeError: unsupported operand type(s) for +: 'datetime.timedelta' and 'str'
BlackJack

@Joe-Waschl: Die Fehlermeldung ist doch recht deutlich: Du versuchst ein Objekt vom Typ `timedelta` und eine Zeichenkette (`str`) mit ``+`` zu addieren. Das geht aber nicht, man kann keine Zeichenketten zu `timedelta` addieren. Du möchtest vielleicht entsprechend Klammern setzen, damit das `strftime` nicht auf `now` sondern auf das Ergebnis der Zeitrechnung aufgerufen wird.

Edit: Und vielleicht möchtest Du auch vernünftige Namen verwenden. Dann brauchst Du auch keine Zeichenketten als Kommentare missbrauchen die die Namen erklären.
Joe-Waschl
User
Beiträge: 20
Registriert: Freitag 12. November 2010, 20:18

danke für die schnelle antwort :)
jetzt klappts
thx ;)

Code: Alles auswählen

print 'Die GA endet um:',  (z * l + a + now).strftime('%d.%m.%Y %H:%M'), 'Uhr'
Antworten