calcular qtas vezes aparece uma palavra em uma coluna

05/02/2018

0

Bom dia Srs,
eu qro descobrir qtos dias uteis há entre 2 datas e para isso...

eu consegui expor todas as datas entre 2 datas (ex.: 05/02/2018 à 15/02/2018) e ficaria assim(05/02/2018 06/02/2018 07/02/2018 ... 15/02/2018)

e descrevi o dia da semana que representa(05/02/2018 seg 06/02/2018 ter 07/02/2018 qua ... 15/02/2018 qui)

agora eu qria saber qtas vezes aparecem o sabado e domingo.

se puderem me ajudar


o script ficou assim:



<td>
<?php



$data_dia = substr('05/02/2018', 0, 2);
$data_mes = substr('05/02/2018', 3, 2);
$data_ano = substr('05/02/2018', -4);

$dat_out_dia = substr('15/02/2018', 0, 2);
$dat_out_mes = substr('15/02/2018', 3, 2);
$dat_out_ano = substr('15/02/2018', -4);

$data_1=$data_ano.'-'.$data_mes.'-'.$data_dia;
$data_2=$dat_out_ano.'-'.$dat_out_mes.'-'.$dat_out_dia;


$start = new \\DateTime($data_1);
$end = new \\DateTime($data_2);
$periodArr = new \\DatePeriod($start , new \\DateInterval('P1D') , $end);

foreach($periodArr as $period) {
$periodo2=$period->format('d/m/Y');
$periodo2a=$period->format('w').'<br />';

echo $periodo2; ?> <?php // echo $periodo2a;
if($period->format('w') == 0) { echo 'domingo' . '<br>';} else {};
if($period->format('w') == 1) { echo 'segunda' . '<br>';} else {};
if($period->format('w') == 2) { echo 'terça' . '<br>';} else {};
if($period->format('w') == 3) { echo 'quarta' . '<br>';} else {};
if($period->format('w') == 4) { echo 'quinta' . '<br>';} else {};
if($period->format('w') == 5) { echo 'sexta' . '<br>';} else {};
if($period->format('w') == 6) { echo 'Sábado' . '<br>';} else {};

$domingos=substr_count($periodo2a, '6'); //0 segunda 1terca 2quarta 3quin 4sexta 5sabado 6 domingo
?> qtd de domingo: <?php echo $domingos; ?> - <?php
?> qtd de fds: ???????? <?php echo $fds; ?> - <?php


?>




<?php
}


//data de término
//echo $end->format('d/m/Y');
$end2=$end->format('d/m/Y');
$end2a=$end->format('w');
//echo $end2;

$end2a=$end->format('w');

echo $end2; echo $end2a; ?> <?php // echo $periodo2a;
if($end->format('w') == 0) { echo 'domingo' . '<br>';} else {};
if($end->format('w') == 1) { echo 'segunda' . '<br>';} else {};
if($end->format('w') == 2) { echo 'terça' . '<br>';} else {};
if($end->format('w') == 3) { echo 'quarta' . '<br>';} else {};
if($end->format('w') == 4) { echo 'quinta' . '<br>';} else {};
if($end->format('w') == 5) { echo 'sexta' . '<br>';} else {};
if($end->format('w') == 6) { echo 'Sábado' . '<br>';} else {};

//echo substr_count($end2a, '0');
$domingos2=substr_count($end2a, '6');
?> qtd de domingo: <?php echo $domingos2; ?> - <?php

?> qtd de fds: ???????? <?php echo $fds; ?> - <?php
?>




?> qtd de fds total(do do inicio e do range até a ultima data): ???????? <?php echo $fds_total; ?> - <?php
</td>
Paulo Silva

Paulo Silva

Responder

Post mais votado

05/02/2018

Instância um contador, e coloca um if que toda a vez que o sabado e o domingo aparecem no intervalo ele incrementa.

Tipo:

<?php
int numDom = 0;
int numSab = 0;

if($end->format('w')=="0"){
numDom++;
}


if($end->format('w')=="6"){
numSab++;
}
?>


Outra coisa, uma dica: em PHP você não necessita usar o "else" no "if" se ele for vazio, ao invés de usar:
if($end->format('w') == 0) { echo 'domingo' . '<br>';} else {};


use:
if($end->format('w') == 0) { echo 'domingo' . '<br>';}


diminui uns caracteres do código, mas é só uma dica, não uma critica. :D

Alex William

Alex William
Responder

Mais Posts

05/02/2018

Paulo Silva

Boa noite Alekym,
incrementei oq sugeriu ,mas n sei se fiz certo, acredito que n..pq n funcionou...rs
,será que poderia ja colocar no meu script pra eu ver como fica(na integra)...

Obgd pela ajuda...
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar