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

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 c437162 was 2e523f3, checked in by ramon <ramongomez@…>, 9 years ago

Corregir errata de variable en revisión r4782.

git-svn-id: https://opengnsys.es/svn/branches/version1.1@4783 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 18.4 KB
Line 
1<?php
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[2010]=0x0001; // tamaño 2 bytes
76                $this->numero_annos[2011]=0x0002;
77                $this->numero_annos[2012]=0x0004;
78                $this->numero_annos[2013]=0x0008;
79                $this->numero_annos[2014]=0x0010;
80                $this->numero_annos[2015]=0x0020;
81                $this->numero_annos[2016]=0x0040;
82                $this->numero_annos[2017]=0x0080;
83                $this->numero_annos[2018]=0x0100;
84                $this->numero_annos[2019]=0x0200;
85                $this->numero_annos[2020]=0x0400;
86                $this->numero_annos[2021]=0x0800;
87                $this->numero_annos[2022]=0x1000;
88                $this->numero_annos[2023]=0x2000;
89                $this->numero_annos[2024]=0x4000;
90                $this->numero_annos[2025]=0x8000;
91
92                $this->numero_dias[1]=0x00000001; // tamaño 4 bytes
93                $this->numero_dias[2]=0x00000002;
94                $this->numero_dias[3]=0x00000004;
95                $this->numero_dias[4]=0x00000008;
96
97                $this->numero_dias[5]=0x00000010;
98                $this->numero_dias[6]=0x00000020;
99                $this->numero_dias[7]=0x00000040;
100                $this->numero_dias[8]=0x00000080;
101
102                $this->numero_dias[9]=0x00000100;
103                $this->numero_dias[10]=0x00000200;
104                $this->numero_dias[11]=0x00000400;
105                $this->numero_dias[12]=0x00000800;
106
107                $this->numero_dias[13]=0x00001000;
108                $this->numero_dias[14]=0x00002000;
109                $this->numero_dias[15]=0x00004000;
110                $this->numero_dias[16]=0x00008000;
111
112                $this->numero_dias[17]=0x00010000;
113                $this->numero_dias[18]=0x00020000;
114                $this->numero_dias[19]=0x00040000;
115                $this->numero_dias[20]=0x00080000;
116
117                $this->numero_dias[21]=0x00100000;
118                $this->numero_dias[22]=0x00200000;
119                $this->numero_dias[23]=0x00400000;
120                $this->numero_dias[24]=0x00800000;
121       
122                $this->numero_dias[25]=0x01000000;
123                $this->numero_dias[26]=0x02000000;
124                $this->numero_dias[27]=0x04000000;
125                $this->numero_dias[28]=0x08000000;
126
127                $this->numero_dias[29]=0x10000000;
128                $this->numero_dias[30]=0x20000000;
129                $this->numero_dias[31]=0x40000000;
130                $this->numero_dias[32]=0x80000000;
131
132
133                $this->numero_horas[1]=array("0:00",0x0001);  // tamaño 2 bytes
134                $this->numero_horas[2]=array("1:00",0x0002); 
135                $this->numero_horas[3]=array("2:00",0x0004); 
136                $this->numero_horas[4]=array("3:00",0x0008); 
137                $this->numero_horas[5]=array("4:00",0x0010); 
138                $this->numero_horas[6]=array("5:00",0x0020); 
139                $this->numero_horas[7]=array("6:00",0x0040); 
140                $this->numero_horas[8]=array("7:00",0x0080); 
141                $this->numero_horas[9]=array("8:00",0x0100); 
142                $this->numero_horas[10]=array("9:00",0x0200); 
143                $this->numero_horas[11]=array("10:00",0x0400); 
144                $this->numero_horas[12]=array("11:00",0x0800); 
145        }
146       
147        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
148                Esta función devuelve el número del día de la semana:
149                        0=domingo 1=Lunes, 2=mártes ... 6=sábado
150               
151                Parámetro de entrada:
152                        Una cadena con formato de fecha dd/mm/aaaa.
153        ________________________________________________________________________________________________________*/
154        function _DiaSemana($fecha){
155                list($dia,$mes,$anno)=split('[/.-]',$fecha);
156                $cont=0;
157                for ($i=1900;$i<$anno;$i++){
158                        if ($this->bisiesto($i)) $dias_anuales=366; else        $dias_anuales=365;
159                        $cont+=$dias_anuales;
160                }
161                for ($i=1;$i<$mes;$i++){
162                        if ($i!=2)
163                                $cont+=$this->dias_meses[$i];
164                        else{
165                                if ($this->bisiesto($anno))
166                                        $cont+=29;
167                                else
168                                        $cont+=28;
169                        }
170                }
171                $cont+=$dia+$this->desplazamiento_dias;
172                return($cont%7);
173        }
174        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
175                Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es
176
177                Parámetro de entrada:
178                        Una número que representa el año
179        ________________________________________________________________________________________________________*/
180        function bisiesto($anob){
181                if ($anob%4==0) return(true); else return(false);
182        }
183        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
184                Esta función devuelve una cadena con el código HTML con un rango de años
185        ________________________________________________________________________________________________________*/
186        function Annos($ano_desde,$ano_hasta){
187                $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13);
188                $HTML_calendario.='<TR>'.chr(13);
189                $HTML_calendario.='<TH style="cursor:pointer" onclick="TH_'.$this->onclick.'">Años</TH></TR>'.chr(13); // Literal años
190                for ($i=$ano_desde; $i<=$ano_hasta; $i++){
191                        $HTML_calendario.='<TR><TD align="center" id="'.$i.'"
192                        value="'.$this->numero_annos[$i].'" style="cursor:pointer"
193                        onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'"
194                        onclick="'.$this->onclick.'">'.$i.'</TD></TR>'.chr(13);
195                }
196                $HTML_calendario.='</TABLE>'.chr(13);
197                return($HTML_calendario);
198        }       
199        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
200                Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
201                y que son propiedades de la clase.
202        ________________________________________________________________________________________________________*/
203        function MesAnno($mes,$anno){
204       
205                $fecha="1/".$mes."/".$anno;
206                $ds=$this->_DiaSemana($fecha);
207                if ($ds==0) $ds=7;
208               
209                $swbi=0; // Suma para bisiesto
210                if ($this->bisiesto($anno) && $mes==2)  $swbi=1;
211
212                $HTML_calendario='<TABLE id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
213                $HTML_calendario.='<TR>'.chr(13);
214                $HTML_calendario.='<TH colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
215                $HTML_calendario.='<TR>'.chr(13);
216                for ($i=1;$i<8;$i++)
217                        $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
218                $HTML_calendario.='</TR><TR>'.chr(13);
219                for ($i=1;$i<$ds;$i++)
220                        $HTML_calendario.='<TD></TD>'.chr(13); // Relleno primeros dias de la semana
221                $sm=$ds; // Control salto de semana
222                for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
223                        $HTML_calendario.='<TD align="center" id="'.$i.'/'.$mes.'/'.$anno.'" value="'.$this->numero_dias[$i].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
224                        if ($sm%7==0){
225                                $HTML_calendario.='</TR><TR>'.chr(13);
226                                $sm=0;
227                        }
228                        $sm++;
229                }
230                $HTML_calendario.='</TR></TABLE>'.chr(13);
231                return($HTML_calendario);
232        }
233        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
234                Esta función devuelve una cadena con el código HTML con los meses del año en dos columnas.
235        ________________________________________________________________________________________________________*/
236        function Meses(){
237                $HTML_calendario='<TABLE id="tabla_meses" class="'.$this->clase.'">'.chr(13);
238                $HTML_calendario.='<TR>'.chr(13);
239                $HTML_calendario.='<TH colspan=2 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Meses</TH></TR>'.chr(13); // Literal meses
240                for ($i=1;$i<13;$i++){
241                        $HTML_calendario.='<TR><TD align="center" id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"
242                        style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
243                        onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">
244                        &nbsp;'.$this->nombre_mes[$i++][0].'&nbsp;</TD>'.chr(13);
245                        $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->nombre_mes[$i][1].'"
246                        style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
247                        onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">
248                        &nbsp;'.$this->nombre_mes[$i][0].'&nbsp;</TD></TR>'.chr(13);
249                }
250                $HTML_calendario.='</TABLE>'.chr(13);
251                return($HTML_calendario);
252        }
253        /* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
254                Esta función devuelve una cadena con el código HTML con los días de la semana en una fila.
255        ________________________________________________________________________________________________________*/
256        function Dias(){
257                $HTML_calendario='<TABLE id="tabla_dias" class="'.$this->clase.'">'.chr(13);
258                $HTML_calendario.='<TR>'.chr(13);
259                $HTML_calendario.='<TH  colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Día</TH><TR>'.chr(13); // Literal Días
260                for ($i=1;$i<8;$i++){
261                        $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->nombre_dia[$i][1].'"
262                        style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
263                        onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->nombre_dia[$i][0].'</TD>'.chr(13);
264                }
265                $HTML_calendario.='</TR></TABLE>'.chr(13);
266                return($HTML_calendario);
267        }               
268        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
269                Esta función devuelve una cadena con el código HTML con el orden de las semana en una fila.
270        ________________________________________________________________________________________________________*/
271        function Semanas(){
272                $HTML_calendario='<TABLE id="tabla_semanas" class="'.$this->clase.'">'.chr(13);
273                $HTML_calendario.='<TR>'.chr(13);
274                $HTML_calendario.='<TH  colspan=7 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Semana</TH><TR>'.chr(13); // Literal Semenas
275                for ($i=1;$i<7;$i++){
276                        $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->semanas[$i][1].'"
277                        style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
278                        onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->semanas[$i][0].'&nbsp;</TD>'.chr(13);
279                }
280                $HTML_calendario.='</TR></TABLE>'.chr(13);
281                return($HTML_calendario);
282        }       
283        /* --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
284                Esta función devuelve una cadena con el código HTML con los 31 días de un mes en 3 filas
285        ________________________________________________________________________________________________________*/
286        function DiasMes(){
287                $HTML_calendario='<TABLE id="tabla_diasmes" class="'.$this->clase.'">'.chr(13);
288                $HTML_calendario.='<TR>'.chr(13);
289                $HTML_calendario.='<TH colspan=8 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Día de mes</TH><TR>'.chr(13); // Literal Día
290                $HTML_calendario.='<TR>'.chr(13);
291                $sd=1; // Control salto de fila
292                for ($i=1;$i<32;$i++){
293                                $HTML_calendario.='<TD align="center" id="'.$i.'" value="'.$this->numero_dias[$i].'"
294                                style="cursor:pointer" onmouseover="'.$this->onmouseover.'"
295                                onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$i.'</TD>'.chr(13);
296                                if ($sd%8==0){
297                                        $HTML_calendario.='</TR><TR>'.chr(13);
298                                        $sd=0;
299                                }
300                                $sd++;
301                }
302                $HTML_calendario.='</TR></TABLE>'.chr(13);
303                return($HTML_calendario);
304        }
305        /* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
306                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
307        ________________________________________________________________________________________________________*/
308        function Horas(){
309
310                $HTML_calendario='<TABLE  id="tabla_horas" class="'.$this->clase.'">'.chr(13);
311                $HTML_calendario.='<TR>'.chr(13);
312                $HTML_calendario.='<TH colspan=12 style="cursor:pointer" onclick="TH_'.$this->onclick.'">Hora ejecución de la acción </TH>';
313                $HTML_calendario.='<TH>Mod</TH>';
314                $HTML_calendario.='<TH>Min.</TH>';
315                //$HTML_calendario.='<TH>Seg.</TH></TR>';
316                $HTML_calendario.='<TR>'.chr(13);
317                for ($i=1;$i<13;$i++)
318                        $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'"  value="'.$this->numero_horas[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
319
320                $HTML_calendario.='<TD align=center>';
321                $HTML_calendario.= '<SELECT class="estilodesple" id="ampm">'.chr(13);
322                $HTML_calendario.= '<OPTION  value=0>A.M.</OPTION>'.chr(13);
323                $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
324                $HTML_calendario.='</SELECT>'.chr(13);
325                $HTML_calendario.='</TD>        '.chr(13);
326
327                $HTML_calendario.='<TD align=center>';
328                $HTML_calendario.='<INPUT   type=text class=cajatexto id=minutos size=1>'.chr(13);
329                $HTML_calendario.='</TD>        '.chr(13);
330
331                $HTML_calendario.='</TR>'.chr(13);
332                $HTML_calendario.='</TABLE>'.chr(13);
333
334                return($HTML_calendario);
335        }
336/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
337                Esta función devuelve una cadena con el código HTML con las horas hasta de reserva de las aulas
338________________________________________________________________________________________________________*/
339        function HorasReserva($literal,$nombretabla,$nombreampm,$nombreminuto){
340                if($literal=="1")
341                        $literal="Comienzo de la reserva";
342                else
343                        $literal="Fin de la reserva";
344               
345                $HTML_calendario='<TABLE  id="'.$nombretabla.'" class="'.$this->clase.'">'.chr(13);
346                $HTML_calendario.='<TR>'.chr(13);
347                $HTML_calendario.='<TH colspan=12 style="cursor:pointer" onclick="TH_'.$this->onclick.'">'.$literal.' </TH>';
348                $HTML_calendario.='<TH>Mod</TH>';
349                $HTML_calendario.='<TH>Min.</TH>';
350                $HTML_calendario.='<TR>'.chr(13);
351                for ($i=1;$i<13;$i++)
352                        $HTML_calendario.='<TD align=center id="'.$this->numero_horas[$i][0].'"  value="'.$this->numero_horas[$i][1].'" style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$this->numero_horas[$i][0].'</TD>'.chr(13);
353
354                $HTML_calendario.='<TD align=center>';
355                $HTML_calendario.= '<SELECT class="estilodesple" id="'.$nombreampm.'">'.chr(13);
356                $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
357                $HTML_calendario.= '<OPTION selected value=1  >P.M.</OPTION>'.chr(13);
358                $HTML_calendario.='</SELECT>'.chr(13);
359                $HTML_calendario.='</TD>        '.chr(13);
360
361                $HTML_calendario.='<TD align=center>';
362                $HTML_calendario.='<INPUT   type=text class=cajatexto id="'.$nombreminuto.'" size=1>'.chr(13);
363                $HTML_calendario.='</TD>        '.chr(13);
364
365                $HTML_calendario.='</TR>'.chr(13);
366                $HTML_calendario.='</TABLE>'.chr(13);
367
368                return($HTML_calendario);
369        }
370        /* -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
371                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
372        ________________________________________________________________________________________________________*/
373        function Horas_Completas(){
374                $maxcolumnas=16;
375
376                $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
377                $HTML_calendario.='<TR>'.chr(13);
378                $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH><TR>'.chr(13); // Literal Horas
379                $HTML_calendario.='<TR>'.chr(13);
380                $currenthora=0;
381                $currentminutos=0;
382                $currenthorario=$currenthora.":".$currentminutos;
383                for ($i=1;$i<97;$i++){
384                        if($currentminutos==0) $currenthorario.="0";
385
386                        $HTML_calendario.='<TD align=center id="'.$currenthorario.'"  style="cursor:pointer" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$currenthorario.'</TD>'.chr(13);
387                        $currentminutos+=15;
388                        if($currentminutos==60) {
389                                $currenthora++;
390                                if($currenthora==24)    $currenthora=0;
391                                $currentminutos=0;
392                        }
393                        $currenthorario=$currenthora.":".$currentminutos;
394                        if ($i%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
395                }
396        $HTML_calendario.='</TR></TABLE>'.chr(13);
397        return($HTML_calendario);
398        }
399} // Fin de la clase Almanaque
Note: See TracBrowser for help on using the repository browser.