some new things, mostly not working or finished
This commit is contained in:
57
functions/sekunden.py
Normal file
57
functions/sekunden.py
Normal file
@@ -0,0 +1,57 @@
|
||||
# -*- coding: ansi -*-
|
||||
|
||||
def timetosec(time_str):
|
||||
parts = time_str.split(':')
|
||||
parts = [int(p) for p in parts]
|
||||
|
||||
if len(parts) == 3: # HH:MM:SS
|
||||
hours, minutes, seconds = parts
|
||||
elif len(parts) == 2: # MM:SS
|
||||
hours = 0
|
||||
minutes, seconds = parts
|
||||
elif len(parts) == 1: # SS
|
||||
hours = 0
|
||||
minutes = 0
|
||||
seconds = parts[0]
|
||||
else:
|
||||
raise ValueError("Zeitformat")
|
||||
|
||||
total_seconds = hours * 3600 + minutes * 60 + seconds
|
||||
return total_seconds
|
||||
|
||||
print(timetosec("02:15:30")) # 8130
|
||||
print(timetosec("15:30")) # 930
|
||||
print(timetosec("45")) # 45
|
||||
|
||||
|
||||
def format_seconds(seconds: int) -> str:
|
||||
"""
|
||||
Meine Interpretation von dem Moodle eintrag. Der leer ist.
|
||||
Wandelt Sekunden in das n<>chst beste Format um
|
||||
:param seconds -> int
|
||||
:returns str
|
||||
"""
|
||||
if seconds < 0:
|
||||
return "falsche eingable"
|
||||
|
||||
intervals = (
|
||||
('Tag', 86400), # 60*60*24
|
||||
('Stunde', 3600), # 60*60
|
||||
('Minute', 60),
|
||||
('Sekunde', 1),
|
||||
)
|
||||
|
||||
result = []
|
||||
for name, count in intervals:
|
||||
value = seconds // count
|
||||
if value:
|
||||
seconds -= value * count
|
||||
if value == 1:
|
||||
result.append(f"{value} {name}")
|
||||
else:
|
||||
result.append(f"{value} {name}en")
|
||||
return ', '.join(result) if result else "0 Sekunden"
|
||||
|
||||
print(format_seconds(3661)) # 1std 1m 1s
|
||||
print(format_seconds(86465)) # 1t 1m 5s
|
||||
print(format_seconds(59)) # 59s
|
||||
Reference in New Issue
Block a user