Каждая дата приводится к полуночи по Гринвичу
Разница показывается и числом дней, и разложенной на годы, месяцы и дни. Разложение следует настоящему календарю, а не делению на 30, потому что месяцы разной длины: от конца февраля до конца марта 28 дней, но это один месяц.
Все вычисления идут на полночь по всемирному координированному времени. Расчёт в местном времени делает дни перехода длиной в 23 или 25 часов и сдвигает ответ на единицу. Для сайта, которым пользуются в разных странах, это не отвлечённое рассуждение.
Рабочие дни исключают выходные сами собой; праздники указываете вы, потому что они различаются по странам и меняются каждый год.
Считать ли день начала
Это зависит от цели. Для промежутка между двумя датами — нет. Для рабочих дней или дней в больнице, где юридические документы считают оба края, — да. Договор со словами в течение трёх дней можно понять и так, и этак.
В помесячных расчётах проверьте обработку конца месяца. Через месяц после 31 января наступает 28 февраля, а в високосный год 29-е, потому что 31 февраля не существует.
Диапазоны рабочих дней длиннее десяти лет отклоняются. Метод считает по дням, поэтому на длинных промежутках становится медленным, да и списки праздников на такую даль всё равно ненадёжны.