zeiterfassung/timestamping.py
Alexander Malzkuhn b51e8ead99 Split + JSON
Aufteilung auf unterschiedliche Dateien
Beginn mit JSON Imports für settings.
2025-04-07 13:41:32 +02:00

71 lines
2.0 KiB
Python

# Funktionen bzgl. Timestamps
import time
import datetime
import os
# Zeitstempel schreiben
def append_timestamp(filename):
# Hole den aktuellen Timestamp in Epoch-Zeit
timestamp = int(time.time())
try:
# Öffne die Datei im Anhang-Modus ('a')
with open(filename, 'a') as file:
# Schreibe den Timestamp in die Datei und füge einen Zeilenumbruch hinzu
file.write(f"{timestamp}\n")
except FileNotFoundError:
# Fehlende Verzeichnisse anlegen
folder_path = os.path.dirname(filename)
os.makedirs(folder_path, exist_ok=True)
append_timestamp(filename)
# Anzahl der Zeilen zählen
def len_timestamps(filename):
try:
# Öffne die Datei im Lese-Modus ('r')
with open(filename, 'r') as file:
# Zähle die Zeilen
lines = file.readlines()
return len(lines)
except FileNotFoundError:
print(f"Die Datei {filename} wurde nicht gefunden.")
return 0
# Stempelzustand auslesen
def stempel_zustand(filename):
lines = len_timestamps(filename)
if lines == 0:
print(f"Keine Einträge")
elif lines % 2 == 0:
return("ausgestempelt")
else:
return("eingestempelt")
# Stempelübersicht zusammenstellen
def overview(filename):
# Öffne die Datei im Lese-Modus ('r')
with open(filename, 'r') as file:
lines = file.readlines()
in_times = []
out_times = []
for i in range(0, len(lines)):
if (i + 1) % 2 == 0:
out_times.append(lines[i])
else:
in_times.append(lines[i])
if len(in_times) > len(out_times):
out_times.append("")
for i in range(0, len(in_times)):
print(convert_timestamp(in_times[i], "%d.%m.%Y %H:%M") + " - " + convert_timestamp(out_times[i], "%H:%M"))
# Timestamp konvertieren
def convert_timestamp(timestamp, format):
try:
return str(datetime.datetime.fromtimestamp(int(timestamp)).strftime(format))
except:
return ("...")