<? class calendario{ var $sem;//Array com os dias da semana como �ndice var $mes;//Array com os meses do ano function inicializa(){//Atribui valores para $sem e $mes. $this->sem=array('Sun'=>1,'Mon'=>2,'Tue'=>3,'Wed'=>4,'Thu'=>5,'Fri'=>6,'Sat'=>7); $this->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'); } function aux($i){//Complementa a tabela com espa�os em branco $retval=""; for($k=0;$k < $i;$k++){ $retval.="<td width=\"20\"> </td>"; } return $retval; } /* $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){ $this->inicializa(); $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 ("D", mktime (0,0,0,$mes,1,$ano));/*String com dia da semana em ingl�s*/ if($this->sem[$diasem] != 1){/*Se dia semana diferente de domingo,completa com colunas em branco*/ $valor=$this->sem[$diasem]-1; $str="<tr align=center bgcolor=\"#FFFFCC\">".$this->aux($valor); } for($i=1;$i < ($last+1);$i++){ $diasem=date ("D", mktime (0,0,0,$mes,$i,$ano)); if($this->sem[$diasem] == 1){/*Se domingo,a data recebe uma colora��o diferente e inicia nova linha na tabela.*/ $str.="<tr align=\"center\" bgcolor=\"#FFFFCC\">"; $s="<font color=\"#FF0000\">$i</font>"; }else{ $s="$i"; } if($marca != 0){ if($dia == $i){ $s="<b>$s</b>"; } } $str.="<td width=\"20\">$s</td>"; if($this->sem[$diasem] == 7){//Se for sabado fecha linha. $str.="</tr>"; } } $diasem=date ("D", mktime (0,0,0,$mes,$last,$ano)); if($this->sem[$diasem] != 7){/*Se dia da semana diferente de s�bado,completa a tabela com espa�os vazios*/. $valor=7-$this->sem[$diasem]; $str=$str.$this->aux($valor)."</tr>"; } $str="<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>".$str."</table></td></tr></table>"; echo $str; } } $teste=new calendario; $teste->cria(date("d"),date("n"),date("Y"),1);//Exemplo ?>