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