source: admin/WebConsole/idiomas/php/esp/clases/Almanaque_esp.php @ 9a2cda1e

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 9a2cda1e was b0dc2e4, checked in by alonso <alonso@…>, 16 years ago

git-svn-id: https://opengnsys.es/svn/trunk@489 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 18.0 KB
Line 
1        <?
2/*============================================================================
3        Esta clase genera tablas HTML para selección de fechas (Versión inglesa)
4       
5        Atributos de la clase:
6
7                clase: Clase [CSS] de la tabla HTML que se generará.
8                onmouseover: Función Javascript que se ejuctará al generarse el evento
9                onmouseout: Función Javascript que se ejuctará al generarse el evento
10                onclick: Función Javascript que se ejuctará al hacer click sobre el objeto
11
12============================================================================*/
13class Almanaque{
14
15        var $clase ;
16        var $onmouseover;
17        var $onmouseout;
18        var $onclick;
19
20        var $desplazamiento_dias=6; // Ajuste fino dependiendo del año de comienzo del algoritmo
21        var $nombre_mes=array();
22        var $nombre_dia=array();
23        var $dias_meses=array();
24        var $semanas=array();
25        var $numero_annos=array();
26
27        function Almanaque($pclase="",$ponmouseover="sobre(this)",$ponmouseout="fuera(this)",$ponclick="clic(this)"){ //Constructor
28                $this->clase=$pclase;
29                $this->onmouseover=$ponmouseover;
30                $this->onmouseout=$ponmouseout;
31                $this->onclick=$ponclick;
32               
33                $this->nombre_mes[1]=array ("Enero",0x0001);
34                $this->nombre_mes[2]=array ("Febrero",0x0002);
35                $this->nombre_mes[3]=array ("Marzo",0x0004);
36                $this->nombre_mes[4]=array ("Abril",0x0008);
37                $this->nombre_mes[5]=array ("Mayo",0x0010);
38                $this->nombre_mes[6]=array ("Junio",0x0020);
39                $this->nombre_mes[7]=array ("Julio",0x0040);
40                $this->nombre_mes[8]=array ("Agosto",0x0080);
41                $this->nombre_mes[9]=array ("Septiembre",0x0100);
42                $this->nombre_mes[10]=array ("Octubre",0x0200);
43                $this->nombre_mes[11]=array ("Noviembre",0x0400);
44                $this->nombre_mes[12]=array ("Diciembre",0x0800);
45
46                $this->nombre_dia[1]=array ("L",0x01); // tamaño 1 bytes
47                $this->nombre_dia[2]=array ("M",0x02);
48                $this->nombre_dia[3]=array ("X",0x04);
49                $this->nombre_dia[4]=array ("J",0x08);
50                $this->nombre_dia[5]=array ("V",0x10);
51                $this->nombre_dia[6]=array ("S",0x20);
52                $this->nombre_dia[7]=array ("D",0x40);
53
54       
55                $this->dias_meses[1]=31;
56                $this->dias_meses[2]=28;
57                $this->dias_meses[3]=31;
58                $this->dias_meses[4]=30;
59                $this->dias_meses[5]=31;
60                $this->dias_meses[6]=30;
61                $this->dias_meses[7]=31;
62                $this->dias_meses[8]=31;
63                $this->dias_meses[9]=30;
64                $this->dias_meses[10]=31;
65                $this->dias_meses[11]=30;
66                $this->dias_meses[12]=31;
67
68                $this->semanas[1]=array ("1ª",0x01); // tamaño 1 bytes
69                $this->semanas[2]=array ("2ª",0x02);
70                $this->semanas[3]=array ("3ª",0x04);
71                $this->semanas[4]=array ("4ª",0x08);
72                $this->semanas[5]=array ("5ª",0x10);
73                $this->semanas[6]=array ("Última",0x20);
74
75                $this->numero_annos[1]=array ("2004",0x01); // tamaño 1 bytes
76                $this->numero_annos[2]=array ("2005",0x02);
77                $this->numero_annos[3]=array ("2006",0x04);
78                $this->numero_annos[4]=array ("2007",0x08);
79                $this->numero_annos[5]=array ("2008",0x10);
80                $this->numero_annos[6]=array ("2009",0x20);
81                $this->numero_annos[7]=array ("2010",0x40);
82                $this->numero_annos[8]=array ("2011",0x80);
83
84                $this->numero_dias[1]=0x00000001; // tamaño 4 bytes
85                $this->numero_dias[2]=0x00000002;
86                $this->numero_dias[3]=0x00000004;
87                $this->numero_dias[4]=0x00000008;
88
89                $this->numero_dias[5]=0x00000010;
90                $this->numero_dias[6]=0x00000020;
91                $this->numero_dias[7]=0x00000040;
92                $this->numero_dias[8]=0x00000080;
93
94                $this->numero_dias[9]=0x00000100;
95                $this->numero_dias[10]=0x00000200;
96                $this->numero_dias[11]=0x00000400;
97                $this->numero_dias[12]=0x00000800;
98
99                $this->numero_dias[13]=0x00001000;
100                $this->numero_dias[14]=0x00002000;
101                $this->numero_dias[15]=0x00004000;
102                $this->numero_dias[16]=0x00008000;
103
104                $this->numero_dias[17]=0x00010000;
105                $this->numero_dias[18]=0x00020000;
106                $this->numero_dias[19]=0x00040000;
107                $this->numero_dias[20]=0x00080000;
108
109                $this->numero_dias[21]=0x00100000;
110                $this->numero_dias[22]=0x00200000;
111                $this->numero_dias[23]=0x00400000;
112                $this->numero_dias[24]=0x00800000;
113       
114                $this->numero_dias[25]=0x01000000;
115                $this->numero_dias[26]=0x02000000;
116                $this->numero_dias[27]=0x04000000;
117                $this->numero_dias[28]=0x08000000;
118
119                $this->numero_dias[29]=0x10000000;
120                $this->numero_dias[30]=0x20000000;
121                $this->numero_dias[31]=0x40000000;
122                $this->numero_dias[32]=0x80000000;
123
124
125
126                $this->numero_horas[1]=array    ("0:00",         0x0001);  // tamaño 2 bytes
127                $this->numero_horas[2]=array    ("1:00",         0x0002); 
128                $this->numero_horas[3]=array    ("2:00",         0x0004); 
129                $this->numero_horas[4]=array    ("3:00",         0x0008); 
130                $this->numero_horas[5]=array    ("4:00",         0x0010); 
131                $this->numero_horas[6]=array    ("5:00",         0x0020); 
132                $this->numero_horas[7]=array    ("6:00",         0x0040); 
133                $this->numero_horas[8]=array    ("7:00",         0x0080); 
134                $this->numero_horas[9]=array    ("8:00",         0x0100); 
135                $this->numero_horas[10]=array ("9:00",0x0200); 
136                $this->numero_horas[11]=array ("10:00",0x0400); 
137                $this->numero_horas[12]=array ("11:00",0x0800); 
138        }
139       
140        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
141                Esta función devuelve el número del día de la semana:
142                        0=domingo 1=Lunes, 2=mártes ... 6=sábado
143               
144                Parámetro de entrada:
145                        Una cadena con formato de fecha dd/mm/aaaa.
146        ________________________________________________________________________________________________________*/
147        function _DiaSemana($fecha){
148                list($dia,$mes,$anno)=split('[/.-]',$fecha);
149                $cont=0;
150                for ($i=1900;$i<$anno;$i++){
151                        if ($this->bisiesto($i)) $dias_anuales=366; else        $dias_anuales=365;
152                        $cont+=$dias_anuales;
153                }
154                for ($i=1;$i<$mes;$i++){
155                        if ($i!=2)
156                                $cont+=$this->dias_meses[$i];
157                        else{
158                                if ($this->bisiesto($anno))
159                                        $cont+=29;
160                                else
161                                        $cont+=28;
162                        }
163                }
164                $cont+=$dia+$this->desplazamiento_dias;
165                return($cont%7);
166        }
167        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
168                Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es
169
170                Parámetro de entrada:
171                        Una número que representa el año
172        ________________________________________________________________________________________________________*/
173        function bisiesto($anob){
174                if ($anob%4==0) return(true); else return(false);
175        }
176        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
177                Esta función devuelve una cadena con el código HTML con un rango de años (2003-2010)
178        ________________________________________________________________________________________________________*/
179        function Annos($ano_desde,$ano_hasta){
180                $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13);
181                $HTML_calendario.='<TR>'.chr(13);
182                $HTML_calendario.='<TH style="cursor:hand" onclick="TH_'.$this->onclick.'">Años</TH></TR>'.chr(13); // Literal años
183                for ($i=1;$i<7;$i++){
184                        $HTML_calendario.='<TR><TD id="'.$this->numero_annos[$i][0].'" value="'.$this->numero_annos[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_annos[$i][0].'</TD></TR>'.chr(13);
185                }
186                $HTML_calendario.='</TABLE>'.chr(13);
187                return($HTML_calendario);
188        }       
189        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
190                Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
191                y que son propiedades de la clase.
192        ________________________________________________________________________________________________________*/
193        function MesAnno($mes,$anno){
194                $fecha="1/".$mes."/".$anno;
195                $ds=$this->_DiaSemana($fecha);
196                if ($ds==0) $ds=7;
197               
198                $swbi=0; // Suma para bisiesto
199                if ($this->bisiesto($anno) && $mes==2)  $swbi=1;
200
201                $HTML_calendario='<TABLE id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
202                $HTML_calendario.='<TR>'.chr(13);
203                $HTML_calendario.='<TH colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
204                $HTML_calendario.='<TR>'.chr(13);
205                for ($i=1;$i<8;$i++)
206                        $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
207                $HTML_calendario.='</TR><TR>'.chr(13);
208                for ($i=1;$i<$ds;$i++)
209                        $HTML_calendario.='<TD></TD>'.chr(13); // Relleno primeros dias de la semana
210                $sm=$ds; // Control salto de semana
211                for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
212                        $HTML_calendario.='<TD id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->numero_dias[$i].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
213                        if ($sm%7==0){
214                                $HTML_calendario.='</TR><TR>'.chr(13);
215                                $sm=0;
216                        }
217                        $sm++;
218                }
219                $HTML_calendario.='</TR></TABLE>'.chr(13);
220                return($HTML_calendario);
221        }
222        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
223                Esta función devuelve una cadena con el código HTML con los meses del año en dos columnas.
224        ________________________________________________________________________________________________________*/
225        function Meses(){
226                $HTML_calendario='<TABLE id="tabla_meses" class="'.$this->clase.'">'.chr(13);
227                $HTML_calendario.='<TR>'.chr(13);
228                $HTML_calendario.='<TH colspan=2 style="cursor:hand" onclick="TH_'.$this->onclick.'">Meses</TH></TR>'.chr(13); // Literal meses
229                for ($i=1;$i<13;$i++){
230                        $HTML_calendario.='<TR><TD id="'.$i.'" value="'.$this->nombre_mes[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_mes[$i++][0].'</TD>'.chr(13);
231                        $HTML_calendario.='<TD id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_mes[$i][0].'</TD></TR>'.chr(13);
232                }
233                $HTML_calendario.='</TABLE>'.chr(13);
234                return($HTML_calendario);
235        }
236        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
237                Esta función devuelve una cadena con el código HTML con los días de la semana en una fila.
238        ________________________________________________________________________________________________________*/
239        function Dias(){
240                $HTML_calendario='<TABLE id="tabla_dias" class="'.$this->clase.'">'.chr(13);
241                $HTML_calendario.='<TR>'.chr(13);
242                $HTML_calendario.='<TH  colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Día</TH><TR>'.chr(13); // Literal Días
243                for ($i=1;$i<8;$i++){
244                        $HTML_calendario.='<TD id="'.$i.'" value="'.$this->nombre_dia[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_dia[$i][0].'</TD>'.chr(13);
245                }
246                $HTML_calendario.='</TR></TABLE>'.chr(13);
247                return($HTML_calendario);
248        }               
249        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
250                Esta función devuelve una cadena con el código HTML con el orden de las semana en una fila.
251        ________________________________________________________________________________________________________*/
252        function Semanas(){
253                $HTML_calendario='<TABLE id="tabla_semanas" class="'.$this->clase.'">'.chr(13);
254                $HTML_calendario.='<TR>'.chr(13);
255                $HTML_calendario.='<TH  colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Semana</TH><TR>'.chr(13); // Literal Semenas
256                for ($i=1;$i<7;$i++){
257                        $HTML_calendario.='<TD id="'.$i.'" value="'.$this->semanas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->semanas[$i][0].'&nbsp;</TD>'.chr(13);
258                }
259                $HTML_calendario.='</TR></TABLE>'.chr(13);
260                return($HTML_calendario);
261        }       
262        /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
263                Esta función devuelve una cadena con el código HTML con los 31 días de un mes en 3 filas
264        ________________________________________________________________________________________________________*/
265        function DiasMes(){
266                $HTML_calendario='<TABLE id="tabla_diasmes" class="'.$this->clase.'">'.chr(13);
267                $HTML_calendario.='<TR>'.chr(13);
268                $HTML_calendario.='<TH colspan=8 style="cursor:hand" onclick="TH_'.$this->onclick.'">Día de mes</TH><TR>'.chr(13); // Literal Día
269                $HTML_calendario.='<TR>'.chr(13);
270                $sd=1; // Control salto de fila
271                for ($i=1;$i<32;$i++){
272                                $HTML_calendario.='<TD id="'.$i.'" value="'.$this->numero_dias[$i].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
273                                if ($sd%8==0){
274                                        $HTML_calendario.='</TR><TR>'.chr(13);
275                                        $sd=0;
276                                }
277                                $sd++;
278                }
279                $HTML_calendario.='</TR></TABLE>'.chr(13);
280                return($HTML_calendario);
281        }
282        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
283                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
284        ________________________________________________________________________________________________________*/
285        function Horas(){
286
287                $HTML_calendario='<TABLE  id="tabla_horas" class="'.$this->clase.'">'.chr(13);
288                $HTML_calendario.='<TR>'.chr(13);
289                $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">Hora ejecución de la acción </TH>';
290                $HTML_calendario.='<TH>Mod</TH>';
291                $HTML_calendario.='<TH>Min.</TH>';
292                //$HTML_calendario.='<TH>Seg.</TH></TR>';
293                $HTML_calendario.='<TR>'.chr(13);
294                for ($i=1;$i<13;$i++)
295                        $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'"  value="'.$this->numero_horas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
296
297                $HTML_calendario.='<TD align=center>';
298                $HTML_calendario.= '<SELECT class="estilodesple" id="ampm">'.chr(13);
299                $HTML_calendario.= '<OPTION  value=0>A.M.</OPTION>'.chr(13);
300                $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
301                $HTML_calendario.='</SELECT>'.chr(13);
302                $HTML_calendario.='</TD>        '.chr(13);
303
304                $HTML_calendario.='<TD align=center>';
305                $HTML_calendario.='<INPUT   type=text class=cajatexto id=minutos size=1>'.chr(13);
306                $HTML_calendario.='</TD>        '.chr(13);
307
308                $HTML_calendario.='</TR>'.chr(13);
309                $HTML_calendario.='</TABLE>'.chr(13);
310
311                return($HTML_calendario);
312        }
313/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
314                Esta función devuelve una cadena con el código HTML con las horas hasta de reserva de las aulas
315________________________________________________________________________________________________________*/
316        function HorasReserva($literal,$nombretabla,$nombreampm,$nombreminuto){
317                if($literal=="1")
318                        $literal="Comienzo de la reserva";
319                else
320                        $literal="Fin de la reserva";
321               
322                $HTML_calendario='<TABLE  id="'.$nombretabla.'" class="'.$this->clase.'">'.chr(13);
323                $HTML_calendario.='<TR>'.chr(13);
324                $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$literal.' </TH>';
325                $HTML_calendario.='<TH>Mod</TH>';
326                $HTML_calendario.='<TH>Min.</TH>';
327                $HTML_calendario.='<TR>'.chr(13);
328                for ($i=1;$i<13;$i++)
329                        $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'"  value="'.$this->numero_horas[$i][1].'" style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
330
331                $HTML_calendario.='<TD align=center>';
332                $HTML_calendario.= '<SELECT class="estilodesple" id="'.$nombreampm.'">'.chr(13);
333                $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
334                $HTML_calendario.= '<OPTION selected value=1  >P.M.</OPTION>'.chr(13);
335                $HTML_calendario.='</SELECT>'.chr(13);
336                $HTML_calendario.='</TD>        '.chr(13);
337
338                $HTML_calendario.='<TD align=center>';
339                $HTML_calendario.='<INPUT   type=text class=cajatexto id="'.$nombreminuto.'" size=1>'.chr(13);
340                $HTML_calendario.='</TD>        '.chr(13);
341
342                $HTML_calendario.='</TR>'.chr(13);
343                $HTML_calendario.='</TABLE>'.chr(13);
344
345                return($HTML_calendario);
346        }
347        /* -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
348                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
349        ________________________________________________________________________________________________________*/
350        function Horas_Completas(){
351                $maxcolumnas=16;
352
353                $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
354                $HTML_calendario.='<TR>'.chr(13);
355                $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH><TR>'.chr(13); // Literal Horas
356                $HTML_calendario.='<TR>'.chr(13);
357                $currenthora=0;
358                $currentminutos=0;
359                $currenthorario=$currenthora.":".$currentminutos;
360                for ($i=1;$i<97;$i++){
361                        if($currentminutos==0) $currenthorario.="0";
362
363                        $HTML_calendario.='<TD align=center id="'.$currenthorario.'"  style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$currenthorario.'</TD>'.chr(13);
364                        $currentminutos+=15;
365                        if($currentminutos==60) {
366                                $currenthora++;
367                                if($currenthora==24)    $currenthora=0;
368                                $currentminutos=0;
369                        }
370                        $currenthorario=$currenthora.":".$currentminutos;
371                        if ($i%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
372                }
373        $HTML_calendario.='</TR></TABLE>'.chr(13);
374        return($HTML_calendario);
375        }
376} // Fin de la clase Almanaque
Note: See TracBrowser for help on using the repository browser.