Если вы создаете систему выставления счетов, вам нужно подумать о банковских праздниках, Пасхе и т. Д. Вычислить это не просто.
Лучшее решение, которое я когда-либо видел, состоит в том, чтобы предварительно сгенерировать таблицу с днями и ее типом в базе данных SQL (строка в день = 365 строк в год), а затем выполнить простой запрос подсчета с правильным выбором (предложение WHERE).
Вы можете найти это решение полностью описанным в Мышление Джо Селко в наборах: вспомогательные, временные и виртуальные таблицы в SQL