From aca4827e93d8cbc9d7ff3d60517c8eb954b7893a Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 19 Oct 2025 10:58:55 +0200 Subject: [PATCH] add current worktime next day --- src/worktime.c | 5 ++++- tests/worktime_tests.c | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/worktime.c b/src/worktime.c index 8e812e4..501a413 100644 --- a/src/worktime.c +++ b/src/worktime.c @@ -7,13 +7,16 @@ time_t get_brutto_worktime(time_t begin, time_t now) { if (begin > now) - return difftime(now + ONE_DAY, begin); + now += ONE_DAY; return difftime(now, begin); } time_t get_current_worktime(time_t begin, time_t now) { + if (begin > now) + now += ONE_DAY; + time_t worktime = difftime(now, begin); worktime -= get_break_time(worktime); diff --git a/tests/worktime_tests.c b/tests/worktime_tests.c index bf0472b..86e75ab 100644 --- a/tests/worktime_tests.c +++ b/tests/worktime_tests.c @@ -34,6 +34,16 @@ void get_current_worktime_four_hours_thirteen_test() assert_int_equal(result, 14280); } +void get_current_worktime_twenty_three_to_six_thirdy() +{ + time_t begin = 82800; + time_t now = 23400; + + time_t result = get_current_worktime(begin, now); + + assert_int_equal(result, 24300); +} + void get_brutto_worktime_four_hours_fourty_five_test() { time_t begin = 23400; @@ -80,6 +90,7 @@ int main() cmocka_unit_test(get_eigth_hour_end_time_test), cmocka_unit_test(get_ten_hour_end_time_test), cmocka_unit_test(get_current_worktime_four_hours_thirteen_test), + cmocka_unit_test(get_current_worktime_twenty_three_to_six_thirdy), cmocka_unit_test(get_brutto_worktime_four_hours_fourty_five_test), cmocka_unit_test(get_brutto_worktime_diff_twenty_three_to_six_thirdy), cmocka_unit_test(get_diff_to_end_eight_hour_end_test), -- 2.47.3