Seite 1 von 1

Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Montag 3. November 2014, 13:16
von Kohonick
Hallo Community,

ich hoffe Ihr könnt mich ein bisschen auf den richtigen Wege bringen für mein Projekt.

Ich möchte gerne Zeiträume mit Python berechnen können.

Hier ein Beispiel:

Dienstbeginn: 01.01.2015 - 08:00 Uhr
Dienstende: 01.01.2015 - 16:00 Uhr

Nun muss der komplette Tag, also mit 24 Stunden betrachtet werden. Ziel ist es die Fehlzeiten/ Abwesenheiten des Mitarbeiters zu ermitteln.

Hier die Abwesenheiten/ Fehlzeiten am obigen Beispiel:

Abwesenheit_1_Beginn : 01.01.2015 00:00 Uhr
Abwesenheit_1_Ende : 01.01.2015 08:00 Uhr
Abwesenheit_2_Beginn : 01.01.2015 16:00 Uhr
Abwesenheit_2_Ende : 01.01.2015 24:00 Uhr

Im Zweiten Schritt könnte ein zweite Anwesenheit mit in die Rechnung fallen. Beispielsweise ein weiterer Dienst von 18:00 Uhr - 23:00 Uhr.
Daraus Resultiert natürlich eine kürzung der Abwesenheit 2 und es wird eine Abwesenheit 3 von 23:00 Uhr bis 24:00 Uhr erzeugt.

Ich hoffe ich habe alles verständlich formuliert.
Habt Ihr ein paar Tipps für mich wie man solche Rechnungen angeht? Gibt es eventuell ein paar nette Libs?
Auch auf Vorschläge für einen eigenen Algorithmus würde ich mich freuen.

Vielen Dank im Voraus

JR

Re: Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Montag 3. November 2014, 14:01
von EyDu
Das hört sich nach einer Aufgabe für das datetime-Modul an. Darin enthalten sind die datetime- und timedelta-Klassen, die sind für deine Zwecke besonders hilfreich.

Re: Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Dienstag 4. November 2014, 10:40
von bfm
Hallo,

wie mein Vorschreiber erwähnt hat, bietet sich hier das datetime-Modul an. Mit datetime-Objekten lassen sich ganz gut Zeitdifferenzen berechnen. Auch kann man damit sehr gut größer/kleiner Vergleiche von zwei Zeitpunkten anstellen.

Ich verwende das Modul bei uns in der Firma, wenn ich die BDE-Zeiten (Betriebsdatenerfassung) mit der Zeitwirtschaft auf Vollständigkeit prüfe. Das Modul erspart einem einiges an selbstgeschriebenen Code und Programmierzeit.

mfg

Re: Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Dienstag 4. November 2014, 16:48
von mutetella
Hallo,

ich hatte da mal was gebastelt, vielleicht findest Du ja die eine oder andere Inspiration...

mutetella

Re: Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Dienstag 4. November 2014, 22:27
von Sirius3
@mutetella: solche Kunstrukte

Code: Alles auswählen

new_begin = other.begin if other.begin >= begin else begin
lassen sich einfach durch die max-Funktion

Code: Alles auswählen

new_begin = max(other.begin, begin)
ersetzen.

Re: Zeiträume/ Zeiperioden mit Python berechnen

Verfasst: Mittwoch 5. November 2014, 17:56
von mutetella
@Sirius3
Danke, sehr schön! Hab's geändert!

mutetella