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);
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;
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),