» » » Считаем сменный график работы в уме

 

Считаем сменный график работы в уме

Автор: admin от 14-02-2019, 09:55, посмотрело: 14

Считаем сменный график работы в уме



Много людей, у которых график работы сменный. Проблема такого графика – сложность быстро посчитать для любой даты какой это день: рабочий или выходной. Есть много онлайн сервисов для расчета сменного графика, но еще проще это сделать в уме. В этой статье будет рассмотрен алгоритм расчета в уме для любого сменного графика.

«Вычисление дня недели в уме», в основе алгоритма будут смещения месяцев.



В статье будет рассматриваться график работы 3/3. Т.е. «неделя» в нашем случае будет длиться 6 дней:



Рабочий день 1
Рабочий день 2
Рабочий день 3
Выходной день 1
Выходной день 2
Выходной день 3


Самое важное – не ошибиться при расчете смещения для первого месяца в году. Все последующие месяцы будут зависеть от этого.



Для примера, пусть первый рабочий день в году будет 2 января, т.е. 2, 3 и 4 января – рабочие, соответственно 5, 6, 7 – выходные дни.





Из вышесказанного получаем календарь для января:



Считаем сменный график работы в уме



где зеленые ячейки – рабочие дни, красные – выходные.



Количество дней в строке равно количеству дней в нашей «неделе», в нашем примере равно 6.



1 января – Выходной день 3;

2 января — Рабочий день 1 (начало «недели»).



Перед первым днем месяца 5 пустых желтых ячеек, это значит, что смещение для января в нашем случае будет равно 5.



Продолжая, получаем календарь для февраля (невисокосный год):



Считаем сменный график работы в уме



как видим, смещение для февраля равно 0, т. к. месяц начинается первым рабочим днем.



Далее для марта:



Считаем сменный график работы в уме



Смещение для марта равно 4, а для апреля – 5, т. к. первое апреля приходится на 6-й день «недели», и перед ним будет 5 пустых квадратов.



Далее считаем до нужного нам месяца.



В моем случае смещения для первых 6 месяцев будут:

5, 0, 4, 5, 5, 5 – январь, февраль, март, апрель, май и июнь. Запомнить 6 цифр не составляет труда.



Чтобы рассчитать, рабочий день это или выходной, нужно к дате прибавить смещение месяца и найти остаток от деления на продолжительность «недели»:

$$display$$Остаток = (дата+смещение;месяца) % (продолжительность;"недели")$$display$$

В зависимости от остатка определяем день:



1, 2 и 3 – рабочие дни

4, 5 и 0 – выходные дни



Например, для 23 февраля: 23 (дата) + 0 (смещение февраля) = 23. Остаток 23 % 6 = 5, это второй выходной.



Для 8 марта: 8 (дата) + 4 (смещение для марта) = 12. 12 % 6 = 0. Это значит, что 8 марта – последний выходной день, 9 марта на работу.



Еще один пример для закрепления:



22 апреля + 5 (смещение для апреля) = 27, остаток от деления на 6 равен 3 – последний рабочий день.



Недостатком алгоритма является нарушение графика после отпуска: таблицу смещений надо пересчитывать или брать отпуск с таким расчетом, чтобы график не нарушался. Например, если взять отпуск после 3 рабочего дня на «количество рабочих дней подряд» * «нечетное число» дней (3, 9, 15, 21 дней отпуска), то график рассмотренный в статье не нарушится.



Пользуясь данным алгоритмом, можно вычислить любой день в уме за несколько секунд, никаких календарей и онлайн-сервисов.

Источник: Хабр / Интересные публикации

Категория: Android

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *