Как же я давно сюда не заходил! Последний раз был я тут.. ого.. 29 сентября. Ну, жаловаться на время, я думаю, не стоит. Ведь когда захотел - вроде как и нашел. В общем-то готовлюсь к диплому.
Решил отписаться здесь, так как думаю с небольшой но все же проблемой этой сталкивалось большинство.
Суть: приперло мне по работе узнать количество рабочих дней в php, как ни странно, ни 1 встроенной функции не нашел (от зараза... ) , решил не унывать и пошел щупать гуглю. После тесного общения с оной нифига вразумительного не нашел, лишь пару человеков намекали на то, как можно реализовать сию штуковину, то есть, функцию по рассчету.
В общем, мой моск решил сию задачу, возможно даже верно, код нижее:
Решил отписаться здесь, так как думаю с небольшой но все же проблемой этой сталкивалось большинство.
Суть: приперло мне по работе узнать количество рабочих дней в php, как ни странно, ни 1 встроенной функции не нашел (от зараза... ) , решил не унывать и пошел щупать гуглю. После тесного общения с оной нифига вразумительного не нашел, лишь пару человеков намекали на то, как можно реализовать сию штуковину, то есть, функцию по рассчету.
В общем, мой моск решил сию задачу, возможно даже верно, код нижее:
/** * Считает рабочие дни недели (без учета праздников, т.е убирает выходные) * @cdays(int) - количество дней до нужной даты *Сопсно, получилось вот такое вот чудо, не знаю, насколько оно верно буит отрабатывать у кого - то, у меня она пока работает как надо. если кто-то найдет ошибку, оч прошу сообщить :) За сим пока откланиваюсь, но обещаю появляться почаще.количество рабочих дней(int) **/ function WorkDays($cdays) { if($cdays<0) { $koef =-1; $cdays=abs($cdays); } else $koef =1; $weekends = floor($cdays/7)*2; //выходные с целых недель в сроке $freeDay = $cdays%7; //кол-во дней, недотянувшее до целой недели $cdays-=($weekends+$freeDay); //вычитаем точно известные выходные и вычитаем все "пока лишние" дни if ($freeDay>0)//если есть свободные дни { $nownum = @date('w'); //номер дня недели(сегодняшнего), как точка отсчета $all = $nownum+$freeDay; //сегодняшний день недели + кол-во дней if ($all-7 >= 0) //если во время срока точно есть выходные $freeDay-=2; elseif($all-6 >=0) $freeDay--; $cdays+=$freeDay; } return $cdays*$koef; }
Комментариев нет:
Отправить комментарий