Добрый день. Стоит задача написать калькулятор начисления командировочных. За образец взята вот
эта форма-калькулятор (конкретно - секция Päivärahat). Суть в следующем: при нахождении работника в командировке, в зависимости от времени, в ней проведенного, работнику начисляется определенная сумма по логике, которая мне не вполне ясна.
Полная суточная ставка - 43 евро. Частичная ставка - 20 евро. Если командировка длилась менее 6 часов, то не начисляется ничего. Если более 6 - то частичная ставка. Если более 10 - то полная суточная ставка. Но когда я стал тестировать более длинные интервалы времени, то выяснилось следующее:
01.01.2020, 22:00 - 0 (до 6 часов) (выехал 1-го января в 22 часа, пока не полагается никаких начислений)
02.01.2020, 4:01 - 20 евро (> 6 часов) + 6 часов __частичная ставка__
02.01.2020, 8:01 - 43 евро (> 10 часов) + 4 часа _____полная ставка_____
03.01.2020, 0:01 - 63 евро (> 26 часов) + 16 часов __+ еще частичная ставка__
03.01.2020, 4:01 - 86 евро (> 30 часов) + 4 часа _____+ еще одна полная ставка_____
04.01.2020, 0:01 - 106 евро (> 50 часов) + 20 часов __+ еще частичная ставка__
04.01.2020, 4:01 - 129 евро (> 54 часов) + 4 часа _____+ еще одна полная ставка_____
05.01.2020, 0:01 - 149 евро (> 74 часов) + 20 часов __+ еще частичная ставка__
05.01.2020, 4:01 - 172 евро (> 78 часов) + 4 часа _____+ еще одна полная ставка_____
06.01.2020, 0:01 - 192 евро (> 98 часов) + 20 часов __+ еще частичная ставка__
и т.д...
Т.е. сначала идут интервалы +6, +4, +16 часов. А потом - только чередуются +4 и +20. Так, например, до 4 утра 04.01 полагается выплатить 106 евро (это 2 полные суточные ставки + одна частичная: 43 * 2 + 20). А с 04:01 начинается очередной интервал, и выплате подлежит 129 евро (три полные суточные ставки).
Проблема в том, что я не могу увидеть какой-то универсальной закономерности в этих расчетах. Сбивает с толку еще, что расчету подлежат не просто значения, а интервалы значений. Буду признателен за подсказку формулы, по которой эти расчеты проводятся.