Сообщение от
waw
Оба приведенных варианта расчета неверны, даже если какой-то из них привел в этом случае к правильному результату.
Правильный вариант приведен в #3, но он не описывает алгоритм словами, а приводится один частный случай, из которого нельзя однозначно вывести правило.
(Вы ошиблись, думая, что округлять до месяца нужно каждый кусочек стажа, но в примере был только один кусок, требующий округления)
А оно такое:
1) сначала вы должны получить отпускной стаж в формате ММ.ДД (месяцы и дни), при этом никакие округления отдельных кусочков стажа до полных месяцев не производятся.
2) а уже результат MM.ДД привести к формату ММ, отбросив ДД или дополнив их до полного месяца.
При этом на этапе 1) остатки дней каждого кусочка стажа складываются, а итог переводится в MM.ДД из расчета 30 дней = 1 месяц.
В вашем случае можно посчитать еще проще:
1) сначала считаем стаж за весь период работы с 20.05.2016 по 03.03.2017.
он равен 9 мес. 12 дней
2) затем вычитаем 2 полных месяца отпуска б/с
остается 7 мес. 12 дней
3) и, наконец, добавляем 14 дней отпуска, входящих в стаж
получаем 7 мес. 26 дней
В результате получаем стаж в 8 мес.