<!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>