Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jackvalantine

Calcular o 5º dia util do mes

Recommended Posts

fala galera tudo em riba,pessoal o lance é o seguinte, estava lendo uma apostila e nela tinha um exercicio para calcular o 5 dia util de cada mes, mas apos umas 2 semanas quebrando a cabeça, não consegui fazer, então resolvi perguntar aqui, e ai alguem se habilita a tentar fazer? hehehehese alguem conseguir posta ai pra mim poder estudar o codigo e ver que realmente ainda sou um nub em programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente, você vai precisar destas duas funções:

 

date

mktime

 

Dê uma estudada na documentação delas. Qualquer coisa, posta aí...

Compartilhar este post


Link para o post
Compartilhar em outros sites

não gosto muito de postar código, mas achei útil essa sua dúvida, pois isso é algo muito usado em sistemas financeiros, repare que a função é fácilmente portável para qualquer dia util que você quiser

// no argumento você pode passar qualquer mês// mas repare que não fiz tratamento de erro pra meses inválidos// da mesma formaque fiz isso você pode dar um looping nos meses e verificar de todos os meses// sem precisar passar o mês como argumento, aí é só você colocar esse do while dentro de um// for que vá de 1 até 12. function diaUtil($mes){	$dia	 = 1;	$diaUtil = 1;	$teste   = true;		do {				$diaSemana = date('w', mktime(0,0,0,$mes,$dia, date('Y')));				if ($diaSemana != 0 && $diaSemana != 6) {			if ($diaUtil < 5) {				$diaUtil++;			} else {				break;			}		}				$dia++;			} while ($teste);		return $dia;	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal.... mas tem um problema, e quanto aos meses que tem feriados, ham, igual setembro ele ta mostrando que o 5 dia util é dia 7 só que dia 7 é feriado, tem como fazer o php reconhecer feriados ou tem que vir de outra fonte de dados tipo cadastrar os feriados no ano em um banco de dados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonasalgumas duvidas.por que em $teste você declarou ela sendo "true" e por que você está usando mktime(0,0,0,$mes,$dia, date('Y')), é que eu testei só com o W e ele retornou o mesmo valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.