добавил человекочитаемый формат длительности трудозатрат

This commit is contained in:
2026-07-06 16:41:32 +03:00
parent 4da65657d8
commit c35b479a0b
3 changed files with 18 additions and 5 deletions

View File

@@ -13,6 +13,19 @@ logger = logging.getLogger(__name__)
def time_to_hour(time: timedelta) -> float:
return round(time.total_seconds() / 3600, 3)
def format_hours(hours: float) -> str:
"""Форматирует десятичные часы и длительность без нулевых старших единиц."""
total_seconds = round(hours * 3600)
hours_part, remaining_seconds = divmod(total_seconds, 3600)
minutes_part, seconds_part = divmod(remaining_seconds, 60)
if hours_part:
duration = f"{hours_part}:{minutes_part:02}:{seconds_part:02}"
elif minutes_part:
duration = f"{minutes_part}:{seconds_part:02}"
else:
duration = str(seconds_part)
return f"{hours:.3f} ч ({duration})"
def today_start() -> datetime:
td = datetime.today()
year = td.year