From: Bastian Dehn Date: Sun, 19 Oct 2025 08:51:35 +0000 (+0200) Subject: calc time to next day X-Git-Tag: 1.3.7^2~2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=c850069109233dbb680841dcf454f29ccd6588af;p=feierabend.git calc time to next day --- diff --git a/src/worktime.c b/src/worktime.c index 0506f62..8e812e4 100644 --- a/src/worktime.c +++ b/src/worktime.c @@ -2,12 +2,14 @@ #include "break.h" #define TEN_HOURS 36000 +#define ONE_DAY 86400 time_t get_brutto_worktime(time_t begin, time_t now) { - time_t worktime = difftime(now, begin); + if (begin > now) + return difftime(now + ONE_DAY, begin); - return worktime; + return difftime(now, begin); } time_t get_current_worktime(time_t begin, time_t now) diff --git a/tests/worktime_tests.c b/tests/worktime_tests.c index e12764d..bf0472b 100644 --- a/tests/worktime_tests.c +++ b/tests/worktime_tests.c @@ -44,6 +44,16 @@ void get_brutto_worktime_four_hours_fourty_five_test() assert_int_equal(result, 15180); } +void get_brutto_worktime_diff_twenty_three_to_six_thirdy() +{ + time_t begin = 82800; + time_t now = 23400; + + time_t result = get_brutto_worktime(begin, now); + + assert_int_equal(result, 27000); +} + void get_diff_to_end_eight_hour_end_test() { time_t begin = 23400; @@ -71,6 +81,7 @@ int main() cmocka_unit_test(get_ten_hour_end_time_test), cmocka_unit_test(get_current_worktime_four_hours_thirteen_test), 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), cmocka_unit_test(get_diff_to_end_ten_hour_end_test), };