Яндекс.Метрика

    i_am_insane

    Российская армия глазами IT-шника. Как измерить стаж?

    Мне с детства казалось (может быть потому что у меня дед был военным?..) что армия это такое место, где всё четко определено. Но при ближайшем рассмотрении она оказалась совсем не такой. Чиновники-бюрократы отдыхают по сравнению с армейскими начальниками. И вот мне поставили одну задачу, которая очень важна при рассчете зарплаты военнослужащим — нужно посчитать стаж работы с точностью до дня. Но на вопрос — как его считать точного ответа мне никто так и не смог дать! А какие есть варианты?

    Пока у человека один период службы — всё хорошо. Мы честно вычитаем годы из годов, месяцы из месяцев и дни из дней. Т.е. если он пришел служить 5 февраля 1979 года, а уволился 10 июня 1983 года, то его стаж составляет 4 года 4 месяца и 6 дней.

    А что делать если он отслужил с 1.01.2001 по 29.01.2001 и с 1.03.2001 по 30.03.2001? Он отслужил 29 дней в первый период и 30 во второй. Сколько это? Я могу предложить 3 правильных варианта ответа:
    — 1 месяц и 28 дней
    — 1 месяц и 29 дней
    — 2 месяца
    Каждый из них имеет логичное объяснение. Ну, с первыми двумя, наверное, понятно. В первом случае мы «добиваем» январь до 31 дня и в марте остается еще 28 отработанных дней. Во втором случае за месяц мы берем средний месяц размером 30 дней ((int)365/12 == 30). Но и третий вариант имеет право на жизнь. Смотрите. Мы считаем, что человек поступил на службу 1.01.2001. И стаж его мы считаем именно с этого момента. А значит и года/месяца/дни должны идти соответствующие. Т.е. он отслужил 59 дней с 1.01.2001., а это аналогично тому, что он отслужил бы с 1.01.2001 по 28.02.2001, т.е. 2 месяца. Значит третий вариант ответа тоже правильный.

    И как же тогда считать?

    В итоге, я написал небольшую программку, которая для каждого периода считает года/месяца/дни честно, а потом «лишние дни» бьет на месяцы из рассчета один месяц = 30 дней. А вы как считаете, какой вариант правильнее?

    P.S. Я, кстати, считаю самым правильным именно третий вариант — посчитать общее количество дней во всех периодах и отложить их от самой первой даты самого первого периода. Но местное начальство с этим не очень согласно.