/* 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