Seite 1 von 1

Letzten Dienstag ermitteln

Verfasst: Donnerstag 22. April 2004, 20:36
von Phobeus
Hi,

bin gerade dabei einige ältere Bash-Skripte nach Python zu übersetzen. Eines erfüllt dfie Aufgabe von einem Provider automatisch Log-Files herunterzuladen und zwar werden diese mit einem Datum versehen und zwar handelt es sich dabei immer um den "letzten Dienstag". Ich bin nun eben die Datumsfunktionen von Python durchgegangen und habe keine Funktion gefunden, die für eine solche Problemstellung geeignet ist. Das schockiert / verwundert mich ein wenig. ;) Also ganz plump gefragt, nehme ich an ein kleines Detail übersehen zu haben.

Wie ermittele ich also den Unix-Time-Stamp des "letzten Dienstages"?
thx ;)
Florian

Verfasst: Donnerstag 22. April 2004, 22:31
von Dookie
Hi Phobeus,

Code: Alles auswählen

import time

secs_per_day = (24 * 60 * 60)
t_now = time.time()
#t_now -= t_now % secs_per_day # Timestamp auf 00:00:00 GMT stehen soll !
t_tuple = time.gmtime(t_now)
days_after_tuseday = (t_tuple[6] - 1) % 7)
last_tuseday = t_now - days_after_tuseday * secs_per_day
geht natürlich auch kürzer :)

Code: Alles auswählen

import time

t_now = time.time()
#t_now -= t_now % 86400 # Timestamp auf 00:00:00 GMT!
last_tuseday = t_now - (time.gmtime(t_now)[6] - 1) % 7) * 86400
Gruß

Dookie

Verfasst: Donnerstag 22. April 2004, 23:22
von Phobeus
:D Bin ehrlich gesagt weiterhin ein wenig schockiert, dass es entsprechende Funktion nicht dafür gibt ;) Was solls auf diesem Weg funktioniert das ja prima. Fast hätte ich noch gefragt, ob es den nirgens ein strftime für unix-stamps gibt, aber gmtime hilft einen ja Gott sei Dank weiter ;)
Hab dank für die schnelle Antwort! ;)
Florian

Verfasst: Donnerstag 22. April 2004, 23:29
von Dookie
Hi Phobeus,

strftime gibts auch im time Modul und viele andere nützliche Funktionen und sogar eine Klasse mit der man Zeitberechnungen machen kann.


Gruß

Dookie