/* Clase Semana */
class Semana
{
/* Miembros */
private $dias;
private $numSemanaAnyo;
/* Métodos de acceso */
public function getNumSemanaAnyo()
{
return $this->numSemanaAnyo;
}
public function getDias()
{
return $this->dias;
}
/* Metodos */
/* Genera los días de una semana */
public function creaDiasSemana(&$diaActual, $anyo, $mes, $finMes)
{
/*Se crea la semana*/
$this->numSemanaAnyo = Fechas::getSemanaAnyo($anyo, $mes, $diaActual);
$diaSemana = Fechas::getDiaSemana($anyo, $mes, $diaActual);
/*Se crea el dia actual*/
$diaActAux = $diaActual;
/*Se calcula lo que hay que retroceder*/
$atras = $diaSemana - 1;
/*Retrocedemos*/
for($i = 0; $i < $atras; $i++)
{
/*Se crea un nuevo día*/
$this->dias[$diaSemana - 2 - $i] = new Dia($diaSemana - 1 - $i,0,false);
}
/*Se calcula lo que hay que avanzar*/
$adelante= 7 - $diaSemana + 1;
/*Avanzamos*/
for($i = 0; $i < $adelante; $i++)
{
/*Se comprueba si el día está dentro del mes*/
$perteneceAlMes = ( $diaActAux <= $finMes );
/*Se crea un nuevo día*/
$this->dias[$diaSemana - 1 + $i] = new Dia($diaSemana + $i, $diaActAux, $perteneceAlMes);
/*Se incrementa el valor del día actual si se está dentro del mes*/
$diaActAux = $diaActAux + 1;
}
/*Se actualiza el día actual de forma que la próxima semana empiece en Lunes*/
$diaActual = $diaActual + $adelante;
return;
}
public function setEvento($evento, $diaSemana)
{
$this->dias[$diaSemana - 1]->setEvento($evento);
}
public function getEvento($diaSemana)
{
return $this->dias[$diaSemana - 1]->getEvento();
}
public function muestraEvento($diaSemana)
{
$this->dias[$diaSemana - 1]->muestraEvento();
}
/* Muestra el HTML correspondiente a una semana */
public function muestraSemana()
{
/*Se abre la fila*/
printf("<tr>\n");
/*La primera columna lleva el número de semana*/
printf("<td class=\"semana\"> %d </td>\n", $this->numSemanaAnyo);
/*Se genera el HTML de los días*/
foreach($this->dias as $dia)
{
$dia->muestraDia();
}
/*Se cierra la fila*/
printf("</tr>\n");
}
}
Record of experiments, readings, links, videos and other things that I find on the long road.
Registro de experimentos, lecturas, links, vídeos y otras cosas que voy encontrando en el largo camino.
Saturday, March 27, 2010
Agenda mensual con calendario en PHP (IV)
Esta es la clase Semana.
Labels:
PHP
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment