Mostra a quantidade dos dias da semana em intervalo
Boa tarde acabei de escrever esse código, que irá me ajudar em um cálculo estatístico. Espero que possa ajuda a outras pessoas também.
Esse código exibi a quantidade de cada dia da semana em um intervalo. Por exemplo:
Se digitarmos 01/01/2012 a 31/12/2012 ele exibirá:
Dia Quantidade
Domingo 53
Segunda-Feira 53
Terça-Feira 52
Quarta-Feira 52
Quinta-Feira 52
Sexta-Feira 52
Sábado 52
Sei que é bem simples mas pode ser útil de várias formas :-).
Estou totalmente aberto a críticas amigos, sei que com elas poderei evoluir.
Esse código exibi a quantidade de cada dia da semana em um intervalo. Por exemplo:
Se digitarmos 01/01/2012 a 31/12/2012 ele exibirá:
Dia Quantidade
Domingo 53
Segunda-Feira 53
Terça-Feira 52
Quarta-Feira 52
Quinta-Feira 52
Sexta-Feira 52
Sábado 52
Sei que é bem simples mas pode ser útil de várias formas :-).
Estou totalmente aberto a críticas amigos, sei que com elas poderei evoluir.
Descrição
Boa tarde acabei de escrever esse código, que irá me ajudar em um cálculo estatístico. Espero que possa ajuda a outras pessoas também.
Esse código exibi a quantidade de cada dia da semana em um intervalo. Por exemplo:
Se digitarmos 01/01/2012 a 31/12/2012 ele exibirá:
Dia Quantidade
Domingo 53
Segunda-Feira 53
Terça-Feira 52
Quarta-Feira 52
Quinta-Feira 52
Sexta-Feira 52
Sábado 52
Sei que é bem simples mas pode ser útil de várias formas :-).
Estou totalmente aberto a críticas amigos, sei que com elas poderei evoluir.
Esse código exibi a quantidade de cada dia da semana em um intervalo. Por exemplo:
Se digitarmos 01/01/2012 a 31/12/2012 ele exibirá:
Dia Quantidade
Domingo 53
Segunda-Feira 53
Terça-Feira 52
Quarta-Feira 52
Quinta-Feira 52
Sexta-Feira 52
Sábado 52
Sei que é bem simples mas pode ser útil de várias formas :-).
Estou totalmente aberto a críticas amigos, sei que com elas poderei evoluir.
<?
//Retona a data em linux
function data_unix($data)
{
$data= split("/", $data);
return mktime(0,0,0,$data[1],$data[0],$data[2]);
}
//Adiciona um dia a data
function somadia($data)
{
$data= split("/", $data);
return date("d/m/Y",mktime(0,0,0,$data[1],$data[0] + 1,$data[2]));
}
//Retorna o numero do dia da semana
function dia_semana($data)
{
$dia= date("w", data_unix($data));
return $dia;
}
?>
<html>
<head>
<title>Dias semana</title>
<meta http-equiv="Content-Type"
content ="text/html; charset=UTF-8"
/>
<script language="JavaScript">
function valData(e,campo)
{
var tecla=(window.event)?event.keyCode:e.which;
if( (tecla > 47)
&& (tecla < 58)
)
{
mascara(campo, '##/##/####');
return true;
}
else
{
if (tecla != 8 )
return false;
else
return true;
}
}
function mascara(campo, mascara)
{
var i = campo.value.length;
var saida= mascara.substring(1,2);
var texto= mascara.substring(i);
if (texto.substring(0,1) != saida)
campo.value += texto.substring(0,1);
}
</script>
</head>
<body>
<form method="GET"
action="index.php"
>
<b>Inicio:</b>
<input type = 'text'
name = 'inicio'
size = '10'
maxlength = '10'
onkeypress= 'return valData(event,this);return false;'
>
<b>Fim:</b>
<input type = 'text'
name = 'fim'
size = '10'
maxlength = '10'
onkeypress= 'return valData(event,this);return false;'
>
<input type ="submit"
value="Calcular"
>
</form>
<?
//verifica se foi informado algo
if($_GET['inicio'] || $_GET['fim'])
{
$inicio = $_GET['inicio'];
$fim = $_GET['fim'];
$semana[0]['nome'] = "Domingo";
$semana[0]['quatidade']= 0;
$semana[1]['nome'] = "Segunda-Feira";
$semana[1]['quatidade']= 0;
$semana[2]['nome'] = "Terça-Feira";
$semana[2]['quatidade']= 0;
$semana[3]['nome'] = "Quarta-Feira";
$semana[3]['quatidade']= 0;
$semana[4]['nome'] = "Quinta-Feira";
$semana[4]['quatidade']= 0;
$semana[5]['nome'] = "Sexta-Feira";
$semana[5]['quatidade']= 0;
$semana[6]['nome'] = "Sábado";
$semana[6]['quatidade']= 0;
?>
<table border='1'>
<tr>
<td>Dia</td>
<td>Quatidade</td>
</tr>
<?
$data= $inicio;
while(data_unix($fim) >= data_unix($data))
{
//busca o dia da semana
$temp= dia_semana($data);
//incrementa um dia ao dia da semana
$semana[$temp]['quatidade']++;
//incrementa um dia a data
$data= somadia($data);
}
$cont= 0;
//exibi resultado
while(sizeof($semana) > $cont)
{
echo "
<tr>
<td>".$semana[$cont]['nome']."</td>
<td>".$semana[$cont]['quatidade']."</td>
</tr>
";
$cont++;
}
?>
</table>
<?
}
?>
</body>
</html>
<?php
function dias($comeco, $fim) {
$segundos = strtotime($fim) - strtotime($comeco);
$dias = $segundos / (60 * 60 * 24) + 1;
$semanas = floor($dias / 7);
$primeiro = date('w', strtotime($comeco));
$ordem = array_keys(array_flip(array_slice(range(0, 6), $primeiro)) + array_flip(array_slice(range(0, 6), 0, $primeiro)));
$semana = array_fill(0, 7, $semanas);
$mais = array_slice($ordem, 0, $dias % 7);
foreach ($mais as $dia) {
$semana[$dia]++;
}
return $semana;
}
function bonito($dias) {
$bonito = array('Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado');
echo '<table>';
foreach (array_combine($bonito, $dias) as $dia => $quantidade) {
printf('<tr><td>%s</td><td>%d</td></tr>', $dia, $quantidade);
}
echo '</table>';
}
$dias = dias('2012-01-01', '2012-01-09');
bonito($dias);