From 045fdc8d96e038797107b5bb248f65bda39c4644 Mon Sep 17 00:00:00 2001 From: jo Date: Fri, 18 Feb 2022 22:01:48 +0100 Subject: [PATCH] feat(shared): create time functions --- shared/libretime_shared/datetime.py | 14 ++++++++++++++ shared/tests/datetime_test.py | 15 +++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 shared/libretime_shared/datetime.py create mode 100644 shared/tests/datetime_test.py diff --git a/shared/libretime_shared/datetime.py b/shared/libretime_shared/datetime.py new file mode 100644 index 000000000..ab06eeba3 --- /dev/null +++ b/shared/libretime_shared/datetime.py @@ -0,0 +1,14 @@ +from datetime import time + + +def time_in_seconds(value: time) -> float: + return ( + value.hour * 60 * 60 + + value.minute * 60 + + value.second + + value.microsecond / 1000000.0 + ) + + +def time_in_milliseconds(value: time) -> float: + return time_in_seconds(value) * 1000 diff --git a/shared/tests/datetime_test.py b/shared/tests/datetime_test.py new file mode 100644 index 000000000..2c75e58db --- /dev/null +++ b/shared/tests/datetime_test.py @@ -0,0 +1,15 @@ +from datetime import time + +from pytest import approx + +from libretime_shared.datetime import time_in_milliseconds, time_in_seconds + + +def test_time_in_seconds(): + value = time(hour=0, minute=3, second=34, microsecond=649600) + assert time_in_seconds(value) == approx(214.65, abs=0.009) + + +def test_time_in_milliseconds(): + value = time(hour=0, minute=0, second=0, microsecond=500000) + assert time_in_milliseconds(value) == 500