Как стать автором
Обновить

Работаем с банковскими (рабочими) днями

PHP *
Полгода назад при разработке системы финансового учета поднялся вопрос о идентификации банковский дней. Произошло это в следующем контексте — при выставлении счета отводится некий промежуток времени (в банковских днях) по истечению которого надо трубить тревогу, если счет еще не оплачен.

Вооружившись трудовым кодексом решил выяснить какие дни можно считать операционными для банка. Статья 112-я гласит:

Нерабочие праздничные дни

Нерабочими праздничными днями в Российской Федерации являются:
1, 2, 3, 4 и 5 января — Новогодние каникулы;
7 января — Рождество Христово;
23 февраля — День защитника Отечества;
8 марта — Международный женский день;
1 мая — Праздник Весны и Труда;
9 мая — День Победы;
12 июня — День России;
4 ноября — День народного единства.

При совпадении выходного и нерабочего праздничного дней выходной день переносится на следующий после праздничного рабочий день.


На основен этой информации был написан простой класс на PHP который позволяет:
  1. подсчитывать кол-во банковских (рабочих) дней за определенный промежуток времени
  2. высчитывать дату +N банковских дней
  3. ну и, естейственно, определять каким днем является определенное число.

Примеры использования:
echo BankDay::getEndDate('2008-10-14', 10, 'd.m.Y');
//28.10.2008
echo BankDay::getEndDate('now', 10);
//1229008080
echo BankDay::getNumDays('2008-02-25', '2008-03-15');
//13
echo BankDay::getNumDays('now', '10 days');
//7
echo BankDay::isWorkDay('2009-01-06');
//false
* This source code was highlighted with Source Code Highlighter.


Скачать исходник


Дабы избежать недопониманий — в данном контексте «банковский» = «операционный» = «рабочий» день
Теги:
Хабы:
Всего голосов 34: ↑27 и ↓7 +20
Просмотры 15K
Комментарии Комментарии 42