Seite 1 von 1

Dauer

Verfasst: Freitag 25. Oktober 2002, 14:48
von Alexander Kunstmann
Hallo,

wie kann ich ermitteln wie lange ein Objekt (Ein Ticket) exestiert
und dann in Zope ausgeben.
Beim Einlegen von Tickets wird die Zeit automatisch gespeichert.
Normalerweise soll die aktuelle Zeit mit der Zei vergliechen werden, wann der Ticket angelegt wurde und dann die Differenz ausgegeben werden. Aber irgendwie funktionirt das nicht. :?:

Vielen Dank im Voraus. :D

Alexander Kunstmann

Verfasst: Freitag 25. Oktober 2002, 18:04
von RicmanX
Einfach Zeiten von einander subtrahieren :)

Code: Alles auswählen

bla = time.mktime(Zeit)-time.mktime(date)
Falls du's als Tuple (sprich Sekunden, Minuten, Stunden...) willst, musst du es noch umwandeln:

Code: Alles auswählen

time.localtime(bla)
Allerdings macht das dumme Dinge dann noch "1.1.1970" (und die lokale Sommerzeit dazu), falls man das auch noch raushaben will muss man halt die Einzelnen Elemente des tuples der Epochensekunde 0 (time.localtime(0)) abziehen, allerdings ist das nur auf Tage genau :shock:

Dauer

Verfasst: Mittwoch 30. Oktober 2002, 16:11
von Alex Kunstmann
Hallo,

klappt leider nicht ganz. Kann vielleich jemand sagen was ich falsch mache. :?:

Der Python Script:
ende = Stoerungsende(id)
anfang = Erstellungsdatum(id)

date_hum_ende = DateTime(ende)
date_epo_ende = date_hum_ende.timeTime()

date_hum_anfang = DateTime(anfang)
date_epo_anfang = date_hum_anfang.timeTime()

date_diff_epo = date_epo_ende - date_epo_anfang

dauer = (date_diff_epo / 86400)

print "%0.2f" % (dauer)

return printed


Der Aufruf in Zope:
<TR align=center width=10 bgcolor="#CC3300">
<TD ROWSPAN=4>
<P ALIGN=CENTER>
<dtml-var id>

<dtml-var Intern>

<dtml-var expr="Dauer(_['sequence-item'].getId()">

</P>
</TD>

Bekomme immer Fehlermeldung:
Error Value: global name 'Stoerungsende' is not defined

Danke. :roll:
Alex

Verfasst: Mittwoch 30. Oktober 2002, 17:21
von RicmanX
Dann hast du dich wohl bei "def Stoerungsende(a):" verschrieben ;)

bzw. mit dem return der Funktion haut etwas nicht so hin.