То есть:
Есть 1 сентября, оттуда нужно отнять 64 рабочих дня(то есть исключить субботы и воскресения + праздничные дни).
Итак. Таблица праздников есть в системе (правда, даты там оказались не в timestamp). Дни недели зашиты в php и компе. Размещаем данную функцию в пользовательских PHP скриптах.
Поехали:
Код: Выделить всё
function getFutureBusinessDay($num_business_days, $today_ymd = null, $count_day = '+1') {
$business_day_count = 0;
$current_timestamp = empty($today_ymd) ? time() : strtotime($today_ymd);
while ($business_day_count < $num_business_days) {
$next1WD = strtotime($count_day.' weekday', $current_timestamp);
$next1WDDate = date('Y-m-d', $next1WD);
$select_holy_query_db=db_query("select id from app_holidays where '".$next1WDDate."' BETWEEN start_date and end_date");
if (!db_fetch_array($select_holy_query_db)) {
$business_day_count++;
}
$current_timestamp = $next1WD;
}
return $current_timestamp;
}
На вход даем 3 переменные:
Кол-во рабочих дней, нужную дату в формате "Год-месяц-день", направление счета - от даты вверх,от даты вниз. Последние два параметра можно не указывать, тогда по умолчанию будет текущая дата, счет всегда вверх.
На выходе получаем timestamp нужной даты.
Можно адаптировать на запрос из интернета, но у меня часто попадается закрытый контур, и проще забить в базу даты.
Буду рад, если кому пригодиться.
Спасибо.