<? class calendario{ var $mes=array('1'=>'JANEIRO','2'=>'FEVEREIRO','3'=>'MAR�O','4'=>'ABRIL','5'=>'MAIO','6'=>'JUNHO','7'=>'JULHO','8'=>'AGOSTO','9'=>'SETEMBRO','10'=>'OUTUBRO','11'=>'NOVEMBRO','12'=>'DEZEMBRO');//Array com os meses do ano /* $dia inteiro de 1 a 31 $mes inteiro de 1 a 12 $ano inteiro de 1901 a 2038 $marca vari�vel que termina se o valor do dia ser� marcado ou n�o. Se diferente de zero marca. */ function cria($dia,$mes,$ano,$marca=0){ $verf=date ("d/n/Y", mktime (0,0,0,$mes,$dia,$ano));//Corrige qualquer data invalida $pieces=explode("/",$verf); $dia=$pieces[0]; $mes=$pieces[1]; $ano=$pieces[2]; $last=date ("d", mktime (0,0,0,$mes+1,0,$ano));//Inteiro do ultimo dia do m�s $diasem=date ("w", mktime (0,0,0,$mes,1,$ano));//String com dia da semana em ingl�s for($i=0;$i < 42;$i++){ if($i >= $diasem and $i < ($diasem+$last)){ $aux[$i]=$i-$diasem+1; }else{ $aux[$i]=" "; } } if($marca != 0){ $aux[$diasem+$dia-1]="<b>".$aux[$diasem+$dia-1]."</b>"; } for($x=0;$x < 42;$x++){ if($x%7 != 0){ $aux[$x]="\n<td width=\"20\">".$aux[$x]."</td>"; }else{ $aux[$x]="\n<td width=\"20\"><font color=\"#FF0000\">".$aux[$x]."</font></td>"; } } for($y=0;$y < 42;$y+=7){ $aux[$y]="<tr align=\"center\" bgcolor=\"#FFFFCC\">".$aux[$y]; $aux[6+$y].="</tr>\n"; } echo "<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bordercolor=\"#000000\"> <tr> <td > <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr bgcolor=\"#6CABF9\" align=\"center\"> <td width=\"100%\" colspan=\"7\"><font size=\"1\"><b>".$this->mes[$mes]." $ano</b></font></i></td> </tr> <tr bgcolor=\"#6CABF9\" align=\"center\"> <td width=\"20\">D</td> <td width=\"20\">S</td> <td width=\"20\">T</td> <td width=\"20\">Q</td> <td width=\"20\">Q</td> <td width=\"20\">S</td> <td width=\"20\">S</td> </tr>"; echo implode(" ",$aux); echo "</table> </td> </tr> </table>"; } } //Exemplos $teste=new calendario; $teste->cria(date("d"),date("n"),date("Y"),1); //Calendario com data atual $teste->cria(-31,70,1990,1);//Calendario com data invalida $teste->cria(3,11,2002,1);//Calendario do dia 3/11/2002 ?> <table> <? //Calendario do ano de 2003 for($i=0;$i<12;$i+=4){ ?> <tr> <td><?$teste->cria(1,1+$i,2003);?></td> <td><?$teste->cria(1,2+$i,2003);?></td> <td><?$teste->cria(1,3+$i,2003);?></td> <td><?$teste->cria(1,4+$i,2003);?></td> </tr> <? } ?> </table>