Megadeth 2 Denunciar post Postado Dezembro 18, 2006 Estou precisando de uma função que possa calcular o numero de dias uteis e não uteis de um determinado periodo.Se alquem poder me ajudar desde já fico agradecido. Compartilhar este post Link para o post Compartilhar em outros sites
Geison Santos 0 Denunciar post Postado Dezembro 18, 2006 Tenta o Google... Compartilhar este post Link para o post Compartilhar em outros sites
entchucs 0 Denunciar post Postado Dezembro 18, 2006 Você pode tentar adaptar o seguinte código que eu extrai do phpbrasil $mes_mk = htmlentities($_GET['mes']);$ano_mk = htmlentities($_GET['ano']);$transforma_mes = array ("1" => "Janeiro","2" => "Fevereiro","3" => "Março","4" => "Abril","5" => "Maio","6" => "Junho","7" => "Julho","8" => "Agosto","9" => "Setembro","10" => "Outubro","11" => "Novembro","12" => "Dezembro");for ($x=0;$x<date("t", time());$x++) { if (strtolower(date("l", mktime(0,0,0,$mes_mk,$x,$ano_mk))) != 'saturday' && strtolower(date("l", mktime(0,0,0,$mes_mk,$x,$ano_mk))) != 'sunday') $all++;}echo "<font face=verdana size=1><b> Total de </b>".$all." <b> dias úteis no mês de ".$transforma_mes[$mes_mk]."</b></font>"; Compartilhar este post Link para o post Compartilhar em outros sites
Apokalypse 0 Denunciar post Postado Dezembro 19, 2006 Olha, eu tenho uma classe que eu desenvolvi que faz diversos calculos referêntes a data/hora para gerenciamento de cobranças, mas não fornecerei o código. O que posso fazer é explicar como ela calcula os dias úteis, e tu tenta fazer ai, afinal nada nesse mundo eh de graça né?$DataInicial = '01/12/2006';$DataFinal = '18/12/2006';Converta as datas para um formato onde o php entenda (eu geralmente converto para timestamp);Calcule quantos dias tem entre as datas (procure no fórum que você acha vários posts falando sobre);Armazene tudo em um array mais ou menos nesse formato:$Dias = Array ( '1'=> 'Sexta-feira', '2'=> 'Sábado', '3'=> 'Domingo',...... '18'=> 'Segunda-feira');Aí é só você mandar remover da array os 'sábados e domingos'.Você também pode montar um 'banco de dados' de feriádos bancários e verificar se existem datas dentro da array, existindo, removendo-as.Após é só contar quantos registros sobraram na array... Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 19, 2006 Olha, eu tenho uma classe que eu desenvolvi que faz diversos calculos referêntes a data/hora para gerenciamento de cobranças, mas não fornecerei o código. O que posso fazer é explicar como ela calcula os dias úteis, e tu tenta fazer ai, afinal nada nesse mundo eh de graça né?Já ouviu falar em projetos open-source? O próprio PHP é um... http://forum.imasters.com.br/public/style_emoticons/default/natal_dry.gif Tinha criado essa função há alguns dias:function dias_uteis($diaIni,$diaFim) { $diaUtil = array(); $diaInutil = array(); while ($diaIni<=$diaFim) { if (($dS=date("w",$diaIni))=="0" || $dS=="6") $diaInutil[] = $diaIni; else $diaUtil[] = $diaIni; $diaIni += 86400; } return array("u" => $diaUtil,"i" => $diaInutil);}...que retorna um array, no indice "u" estão os dias úteis e em "i" os finais de semana, tudo em timestamp, se quiser visualizar os dias é só fazer: print $s['u'][2] Compartilhar este post Link para o post Compartilhar em outros sites
Megadeth 2 Denunciar post Postado Dezembro 19, 2006 Alisson sua função é muito boa mais ela só calcula dias de um mes,eu preciso de uma que calcule os dias uteis e não uteis de um periodo,mais mesmo assim. Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
Megadeth 2 Denunciar post Postado Dezembro 19, 2006 Para ficar melhor, gostaria apenas que me ajudasema criar um loop que vá de uma data inicial até umadata final, o resto deixa comigo. OK! Compartilhar este post Link para o post Compartilhar em outros sites
Illidan 0 Denunciar post Postado Dezembro 19, 2006 Um exemplo: $data_inicial = strtotime("2006-12-01"); $data_final = strtotime("2007-06-01"); while ($data_inicial <= $data_final) { // processamento... // $data_inicial += 86400; } Como a $data_inicial é um timestamp, você pode utilizá-la juntamente com a função date. Pra pegar o dia da semana, basta fazer date("w", $data_inicial). Aí talvez você tenha que considerar os feriados, também... os fixos, como 7 de setembro ou 15 de novembro, são fáceis... já o variáveis, como Carnaval ou Páscoa, são um pouco mais chatos... mas não é difícil de encontrar algorítimos no Google que ensinem a calcular o dia em que o Carnaval cairá num determinado ano, por exemplo. []'s! Compartilhar este post Link para o post Compartilhar em outros sites
Megadeth 2 Denunciar post Postado Dezembro 19, 2006 Valeu Illidan, era realmente isso que eu estava precisando, muito Obrigado.Abraços ! Inté ! :) Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Dezembro 19, 2006 Amigão, não querendo ser chato, mas qual a diferença entre o que eu postei e o que o Illidan postou? A minha calcula dentro de um período independente se tem 1 mês ou 20... Compartilhar este post Link para o post Compartilhar em outros sites
Megadeth 2 Denunciar post Postado Dezembro 19, 2006 Amigão, não querendo ser chato, mas qual a diferença entre o que eu postei e o que o Illidan postou? A minha calcula dentro de um período independente se tem 1 mês ou 20...Cara o negocio é o seguinte, seu codigo não funfou aqui,talvez por que eu não entendi muito esses seus arrays,mais usei o do Illidan, que na verdade criei uma funçãoque acabou ficando igual a sua. Desculpe e muito obrigado!Valew a todos, ABRAÇOS!!!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites