// nomes dos meses $meses = explode(',', 'janeiro,fevereiro,marco,abril,maio,junho,julho,agosto,setembro,outubro,novembro,dezembro'); // nomes dos dias da semana $diasSemana = explode(',', 'dom,seg,ter,qua,qui,conteudo inapropriado,sab'); // ano desejado $ano = 2015; // mes inicial do ano $inicial = 01; // quantidade de meses a ser exibido $qtd = 50;
// para a quantidade de meses desejados for($i=0; $i<$qtd; $i++){ // numero de dias do mes $maxDias = date('d', mktime(0,0,0,$inicial+$i+1, 0, $ano)); // dia da semana inicial $diaSemana = date('w', mktime(0,0,0,$inicial+$i, 1, $ano)); // numero do mes $mes = date('m', mktime(0,0,0,$inicial+$i, 1, $ano)); // ano atual conforme calculo $anoAtual = date('Y', mktime(0,0,0,$inicial+$i, 1, $ano)); // nome do mes atual $nome = $meses[$mes-1];
// inicia a tabela com o nome do mes echo '<table class="mes">'; echo '<thead>'; echo '<tr><th colspan="7">',$nome,' ', $anoAtual, '</th></tr>';
// se o dia da semana for maior que domingo // criamos as celulas iniciais para poder iniciar no dia correto if($diaSemana > 0){ echo '<tr>'; for($j=0; $j<$diaSemana; $j++){ echo '<td> </td>'; } }
// para cada dia encontrado no mes for($j=1; $j<=$maxDias; $j++){ // pega o dia semana $diaSemana = date('w', mktime(0,0,0,$inicial+$i, $j, $ano));
// classe CSS conforme o dia da semana switch($diaSemana){ case 0: $class = 'dom'; break; case 6: $class = 'sab'; break;
default: $class = 'normal'; break; }
// se for domingo, abre uma nova linha if($diaSemana == 0){ echo '<tr>'; }
// escreve a celula do dia echo '<td class="',$class,'"><a href="teste4.php?dia='.$j.'&mes='.$mes.'">', $j, '</a></td>'; // se for sabado, fecha a linha if($diaSemana == 6){ echo '</tr>'; } }
// se sobraram dias para fechar a linha if($diaSemana < 6){ for($j=$diaSemana; $j<6; $j++){ echo '<td> </td>'; } echo '</tr>'; }
Pergunta
Jefferson Androcles
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
<style type="text/css">
.mes {
border: 1px solid #CCCCCC;
float: left;
display: block;
margin-right: 20px;
margin-bottom: 20px;
}
.mes td, .mes th {
font-size: 12px;
color: #000000;
font-family: Arial;
width: 25px;
text-align: center;
}
.dom {
background-color: #CCCCCC;
}
.sab {
background-color: #EFEFEF;
}
.diacerto{
background-color:#000000;
}
a{
}
</style>
</head>
<body>
<?php
date_default_timezone_set('America/Sao_Paulo');
// nomes dos meses
$meses = explode(',', 'janeiro,fevereiro,marco,abril,maio,junho,julho,agosto,setembro,outubro,novembro,dezembro');
// nomes dos dias da semana
$diasSemana = explode(',', 'dom,seg,ter,qua,qui,conteudo inapropriado,sab');
// ano desejado
$ano = 2015;
// mes inicial do ano
$inicial = 01;
// quantidade de meses a ser exibido
$qtd = 50;
// para a quantidade de meses desejados
for($i=0; $i<$qtd; $i++){
// numero de dias do mes
$maxDias = date('d', mktime(0,0,0,$inicial+$i+1, 0, $ano));
// dia da semana inicial
$diaSemana = date('w', mktime(0,0,0,$inicial+$i, 1, $ano));
// numero do mes
$mes = date('m', mktime(0,0,0,$inicial+$i, 1, $ano));
// ano atual conforme calculo
$anoAtual = date('Y', mktime(0,0,0,$inicial+$i, 1, $ano));
// nome do mes atual
$nome = $meses[$mes-1];
// inicia a tabela com o nome do mes
echo '<table class="mes">';
echo '<thead>';
echo '<tr><th colspan="7">',$nome,' ', $anoAtual, '</th></tr>';
// cabecalho com os nomes dos dias da semana
echo '<tr>';
for($j=0; $j<7; $j++){
echo '<th bgcolor="#fff">', $diasSemana[$j],'</th>';
}
echo '</tr>';
echo '</thead>';
// se o dia da semana for maior que domingo
// criamos as celulas iniciais para poder iniciar no dia correto
if($diaSemana > 0){
echo '<tr>';
for($j=0; $j<$diaSemana; $j++){
echo '<td> </td>';
}
}
// para cada dia encontrado no mes
for($j=1; $j<=$maxDias; $j++){
// pega o dia semana
$diaSemana = date('w', mktime(0,0,0,$inicial+$i, $j, $ano));
// classe CSS conforme o dia da semana
switch($diaSemana){
case 0:
$class = 'dom';
break;
case 6:
$class = 'sab';
break;
default:
$class = 'normal';
break;
}
// se for domingo, abre uma nova linha
if($diaSemana == 0){
echo '<tr>';
}
// escreve a celula do dia
echo '<td class="',$class,'"><a href="teste4.php?dia='.$j.'&mes='.$mes.'">', $j, '</a></td>';
// se for sabado, fecha a linha
if($diaSemana == 6){
echo '</tr>';
}
}
// se sobraram dias para fechar a linha
if($diaSemana < 6){
for($j=$diaSemana; $j<6; $j++){
echo '<td> </td>';
}
echo '</tr>';
}
// fecha a tabela
echo '</table>';
}
?>
</body>
</html>
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.