Descrição
Essa é uma classe bem simples que gera um calendário. Ela recebe como parâmetros o mês e o ano do calendário desejado.
Pode ser que isso seja útil para alguém, de forma que estou publicando aqui.
[ Download:
calendario.php ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
<?php
class Calendario {
public $dia;
public $mes;
public $ano;
public $tstamp;
public $dtmanip;
public $dsprimdia;
public $linhafechada;
public function Calendario( $pmes, $pano ) {
$this->linhafechada = true;
$this->dia = 1;
$this->mes = $pmes;
$this->ano = $pano;
$this->calcula_tstamp();
$this->data_manipulavel();
$this->primeiro_dia_mes();
}
public function calcula_tstamp() {
$this->tstamp = mktime( 0, 0, 0, $this->mes, $this->dia, $this->ano );
}
public function data_manipulavel() {
$this->dtmanip = getdate( $this->tstamp );
}
public function primeiro_dia_mes() {
$this->dsprimdia = $this->dtmanip[ "wday" ];
}
public function proximo_dia() {
$this->dia++;
$this->calcula_tstamp();
}
public function exibe_calendario() {
$larg = 100.0/7.0;
echo "<table border='1' width='100%' cellpadding='0' cellspacing='0' align='center' bordercolor='#333333'>\n";
echo "<tr class='titulotabela'>\n";
echo "<td align='center' width='".$larg."%'>Dom</td>\n";
echo "<td align='center' width='".$larg."%'>Seg</td>\n";
echo "<td align='center' width='".$larg."%'>Ter</td>\n";
echo "<td align='center' width='".$larg."%'>Qua</td>\n";
echo "<td align='center' width='".$larg."%'>Qui</td>\n";
echo "<td align='center' width='".$larg."%'>Sex</td>\n";
echo "<td align='center' width='".$larg."%'>Sab</td>\n";
echo "</tr>\n";
$ccol = 0;
$casa = 0;
while( checkdate( $this->mes, $this->dia, $this->ano ) ) {
if ( $this->linhafechada ) {
echo "<tr>\n";
$this->linhafechada = false;
}
if ( $casa < $this->dsprimdia ) {
echo "<td> </td>\n";
} else {
echo "<td align='center'>\n";
echo $this->dia."\n";
echo "</td>\n";
$this->proximo_dia();
}
$ccol++;
$ccol = $ccol % 7;
$casa++;
if ( ( $casa % 7 ) == 0 ) {
echo "</tr>\n";
$this->linhafecha = true;
}
}
while( $ccol != 0 ) {
$ccol++;
$ccol = $ccol % 7;
echo "<td> </td>\n";
}
echo "</tr>\n";
echo "</table>\n";
}
}
?>
Scripts recomendados
Gerenciador de Escola de Informática
Calendário
Fast Template CVS Revision 1.2.2
Widgets intermediários em PHP-GTK
Acesso a Diretórios ou Arquivos Específicos
Comentários
[1] Comentário enviado por
fernando0973 em 24/06/2008 - 00:37h:
Olá. Sou iniciante em PHP e gostaria de uma explicação de como utilizar esta classe. Obrigado
[2] Comentário enviado por
edlonewolf em 30/06/2008 - 13:41h:
Você só precisa instanciar um objeto dessa classe no ponto do seu código onde deseja que o calendário apareça.
[3] Comentário enviado por
edlonewolf em 30/06/2008 - 13:42h:
Exemplo:
$mes = 7;
$ano = 2008;
$calend = new Calendario( $mes, $ano );
[4] Comentário enviado por
guilecardoso em 31/03/2011 - 21:45h:
Sei que já faz bastante tempo que foi postado este script mas encontrei um erro e aí segue a correção
falta uma linha na function Calendario
$this->exibe_calendario();
Abraços