]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add current worktime next day
authorBastian Dehn <hhaalo@arcor.de>
Sun, 19 Oct 2025 08:58:55 +0000 (10:58 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 19 Oct 2025 08:58:55 +0000 (10:58 +0200)
src/worktime.c
tests/worktime_tests.c

index 8e812e49f5d3a2c79728a9ebd05e5b88a52383d1..501a413dcbeed699ca7fe4cc7479b08d1fef1405 100644 (file)
@@ -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);
 
index bf0472b32803671d71ef9a380427129eff1c4a05..86e75ab1fff9ed9064acdb96f1e8c2c2e2548a64 100644 (file)
@@ -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),