source: admin/WebConsole/idiomas/php/eng/clases/Almanaque_eng.php @ c2cc729

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 c2cc729 was 3ec149c, checked in by alonso <alonso@…>, 15 years ago

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

  • Property mode set to 100644
File size: 18.5 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 ("January",0x0001);
34                $this->nombre_mes[2]=array ("February",0x0002);
35                $this->nombre_mes[3]=array ("March",0x0004);
36                $this->nombre_mes[4]=array ("April",0x0008);
37                $this->nombre_mes[5]=array ("May",0x0010);
38                $this->nombre_mes[6]=array ("June",0x0020);
39                $this->nombre_mes[7]=array ("July",0x0040);
40                $this->nombre_mes[8]=array ("August",0x0080);
41                $this->nombre_mes[9]=array ("September",0x0100);
42                $this->nombre_mes[10]=array ("October",0x0200);
43                $this->nombre_mes[11]=array ("November",0x0400);
44                $this->nombre_mes[12]=array ("December",0x0800);
45
46                $this->nombre_dia[1]=array ("Mo",0x01); // tamaño 1 bytes
47                $this->nombre_dia[2]=array ("Tu",0x02);
48                $this->nombre_dia[3]=array ("We",0x04);
49                $this->nombre_dia[4]=array ("Th",0x08);
50                $this->nombre_dia[5]=array ("Fr",0x10);
51                $this->nombre_dia[6]=array ("Sa",0x20);
52                $this->nombre_dia[7]=array ("Su",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 ("Last",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                $this->numero_horas[1]=array    ("0:00",         0x0001);  // tamaño 2 bytes
126                $this->numero_horas[2]=array    ("1:00",         0x0002); 
127                $this->numero_horas[3]=array    ("2:00",         0x0004); 
128                $this->numero_horas[4]=array    ("3:00",         0x0008); 
129                $this->numero_horas[5]=array    ("4:00",         0x0010); 
130                $this->numero_horas[6]=array    ("5:00",         0x0020); 
131                $this->numero_horas[7]=array    ("6:00",         0x0040); 
132                $this->numero_horas[8]=array    ("7:00",         0x0080); 
133                $this->numero_horas[9]=array    ("8:00",         0x0100); 
134                $this->numero_horas[10]=array ("9:00",0x0200); 
135                $this->numero_horas[11]=array ("10:00",0x0400); 
136                $this->numero_horas[12]=array ("11:00",0x0800); 
137
138/*
139                $this->numero_horas[1]=array ("8:00",0x00000001);  // tamaño 4 bytes
140                $this->numero_horas[2]=array ("8:30",0x00000002); 
141                $this->numero_horas[3]=array ("9:00",0x00000004); 
142                $this->numero_horas[4]=array ("9:30",0x00000008); 
143                $this->numero_horas[5]=array ("10:00",0x00000010); 
144                $this->numero_horas[6]=array ("10:30",0x00000020); 
145                $this->numero_horas[7]=array ("11:00",0x00000040); 
146                $this->numero_horas[8]=array ("11:30",0x00000080); 
147                $this->numero_horas[9]=array ("12:00",0x00000100); 
148                $this->numero_horas[10]=array ("12:30",0x00000200); 
149                $this->numero_horas[11]=array ("13:00",0x00000400); 
150                $this->numero_horas[12]=array ("13:30",0x00000800); 
151                $this->numero_horas[13]=array ("14:00",0x00001000); 
152                $this->numero_horas[14]=array ("14:30",0x00002000); 
153                $this->numero_horas[15]=array ("15:00",0x00004000); 
154                $this->numero_horas[16]=array ("15:30",0x00008000); 
155                $this->numero_horas[17]=array ("16:00",0x00010000); 
156                $this->numero_horas[18]=array ("16:30",0x00020000); 
157                $this->numero_horas[19]=array ("17:00",0x00040000); 
158                $this->numero_horas[20]=array ("17:30",0x00080000); 
159                $this->numero_horas[21]=array ("18:00",0x00100000); 
160                $this->numero_horas[22]=array ("18:30",0x00200000); 
161                $this->numero_horas[23]=array ("19:00",0x00400000); 
162                $this->numero_horas[24]=array ("19:30",0x00800000); 
163                $this->numero_horas[25]=array ("20:00",0x01000000); 
164                $this->numero_horas[26]=array ("20:30",0x02000000); 
165                $this->numero_horas[27]=array ("21:00",0x04000000); 
166                $this->numero_horas[28]=array ("21:30",0x08000000);
167        */
168       
169        }
170       
171        /*-------------------------------------------------------------------------------------------
172                Esta función devuelve el número del día de la semana:
173                        0=domingo 1=Lunes, 2=mártes ... 6=sábado
174               
175                Parámetro de entrada:
176                        Una cadena con formato de fecha dd/mm/aaaa.
177        ----------------------------------------------------------------------------------------------*/
178        function _DiaSemana($fecha){
179                list($dia,$mes,$anno)=split('[/.-]',$fecha);
180                $cont=0;
181                for ($i=1900;$i<$anno;$i++){
182                        if ($this->bisiesto($i)) $dias_anuales=366; else        $dias_anuales=365;
183                        $cont+=$dias_anuales;
184                }
185                for ($i=1;$i<$mes;$i++){
186                        if ($i!=2)
187                                $cont+=$this->dias_meses[$i];
188                        else{
189                                if ($this->bisiesto($anno))
190                                        $cont+=29;
191                                else
192                                        $cont+=28;
193                        }
194                }
195                $cont+=$dia+$this->desplazamiento_dias;
196                return($cont%7);
197        }
198        /* -------------------------------------------------------------------------------------------
199                Esta función devuelve true si el año pasado como parámetro es bisiesto y false si no lo es
200
201                Parámetro de entrada:
202                        Una número que representa el año
203        ----------------------------------------------------------------------------------------------*/
204        function bisiesto($anob){
205                if ($anob%4==0) return(true); else return(false);
206        }
207        /* -------------------------------------------------------------------------------------------
208                Esta función devuelve una cadena con el código HTML con un rango de años (2003-2010)
209        ----------------------------------------------------------------------------------------------*/
210        function Annos($ano_desde,$ano_hasta){
211                $HTML_calendario='<TABLE id="tabla_annos" class="'.$this->clase.'">'.chr(13);
212                $HTML_calendario.='<TR>'.chr(13);
213                $HTML_calendario.='<TH style="cursor:hand" onclick="TH_'.$this->onclick.'">Years</TH></TR>'.chr(13); // Literal años
214                for ($i=1;$i<7;$i++){
215                        $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);
216                }
217                $HTML_calendario.='</TABLE>'.chr(13);
218                return($HTML_calendario);
219        }       
220        /* -------------------------------------------------------------------------------------------
221                Esta función devuelve una cadena con el código HTML del calendario del mes y año elegidos
222                y que son propiedades de la clase.
223        ----------------------------------------------------------------------------------------------*/
224        function MesAnno($mes,$anno){
225                $fecha="1/".$mes."/".$anno;
226                $ds=$this->_DiaSemana($fecha);
227                if ($ds==0) $ds=7;
228               
229                $swbi=0; // Suma para bisiesto
230                if ($this->bisiesto($anno) && $mes==2)  $swbi=1;
231
232                $HTML_calendario='<TABLE id="tabla_mesanno" class="'.$this->clase.'">'.chr(13);
233                $HTML_calendario.='<TR>'.chr(13);
234                $HTML_calendario.='<TH colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$this->nombre_mes[$mes][0].'</TH></TR>'.chr(13); // Nombre del mes
235                $HTML_calendario.='<TR>'.chr(13);
236                for ($i=1;$i<8;$i++)
237                        $HTML_calendario.='<TH>'.$this->nombre_dia[$i][0].'</TH>'.chr(13); // Días de la semana
238                $HTML_calendario.='</TR><TR>'.chr(13);
239                for ($i=1;$i<$ds;$i++)
240                        $HTML_calendario.='<TD></TD>'.chr(13); // Relleno primeros dias de la semana
241                $sm=$ds; // Control salto de semana
242                for ($i=1;$i<=$this->dias_meses[$mes]+$swbi;$i++){
243                        $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);
244                        if ($sm%7==0){
245                                $HTML_calendario.='</TR><TR>'.chr(13);
246                                $sm=0;
247                        }
248                        $sm++;
249                }
250                $HTML_calendario.='</TR></TABLE>'.chr(13);
251                return($HTML_calendario);
252        }
253        /* -------------------------------------------------------------------------------------------
254                Esta función devuelve una cadena con el código HTML con los meses del año en dos columnas.
255        ----------------------------------------------------------------------------------------------*/
256        function Meses(){
257                $HTML_calendario='<TABLE id="tabla_meses" class="'.$this->clase.'">'.chr(13);
258                $HTML_calendario.='<TR>'.chr(13);
259                $HTML_calendario.='<TH colspan=2 style="cursor:hand" onclick="TH_'.$this->onclick.'">Months</TH></TR>'.chr(13); // Literal meses
260                for ($i=1;$i<13;$i++){
261                        $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);
262                        $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);
263                }
264                $HTML_calendario.='</TABLE>'.chr(13);
265                return($HTML_calendario);
266        }
267        /* -------------------------------------------------------------------------------------------
268                Esta función devuelve una cadena con el código HTML con los días de la semana en una fila.
269        ----------------------------------------------------------------------------------------------*/
270        function Dias(){
271                $HTML_calendario='<TABLE id="tabla_dias" class="'.$this->clase.'">'.chr(13);
272                $HTML_calendario.='<TR>'.chr(13);
273                $HTML_calendario.='<TH  colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Day</TH><TR>'.chr(13); // Literal Días
274                for ($i=1;$i<8;$i++){
275                        $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);
276                }
277                $HTML_calendario.='</TR></TABLE>'.chr(13);
278                return($HTML_calendario);
279        }               
280        /* -------------------------------------------------------------------------------------------
281                Esta función devuelve una cadena con el código HTML con el orden de las semana en una fila.
282        ----------------------------------------------------------------------------------------------*/
283        function Semanas(){
284                $HTML_calendario='<TABLE id="tabla_semanas" class="'.$this->clase.'">'.chr(13);
285                $HTML_calendario.='<TR>'.chr(13);
286                $HTML_calendario.='<TH  colspan=7 style="cursor:hand" onclick="TH_'.$this->onclick.'">Week</TH><TR>'.chr(13); // Literal Semenas
287                for ($i=1;$i<7;$i++){
288                        $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);
289                }
290                $HTML_calendario.='</TR></TABLE>'.chr(13);
291                return($HTML_calendario);
292        }       
293        /* -------------------------------------------------------------------------------------------
294                Esta función devuelve una cadena con el código HTML con los 31 días de un mes en 3 filas
295        ----------------------------------------------------------------------------------------------*/
296        function DiasMes(){
297                $HTML_calendario='<TABLE id="tabla_diasmes" class="'.$this->clase.'">'.chr(13);
298                $HTML_calendario.='<TR>'.chr(13);
299                $HTML_calendario.='<TH colspan=8 style="cursor:hand" onclick="TH_'.$this->onclick.'">Day of month</TH><TR>'.chr(13); // Literal Día
300                $HTML_calendario.='<TR>'.chr(13);
301                $sd=1; // Control salto de fila
302                for ($i=1;$i<32;$i++){
303                                $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);
304                                if ($sd%8==0){
305                                        $HTML_calendario.='</TR><TR>'.chr(13);
306                                        $sd=0;
307                                }
308                                $sd++;
309                }
310                $HTML_calendario.='</TR></TABLE>'.chr(13);
311                return($HTML_calendario);
312        }
313        /* -------------------------------------------------------------------------------------------
314                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
315        ----------------------------------------------------------------------------------------------*/
316        function Horas(){
317                $HTML_calendario='<TABLE  id="tabla_horas" class="'.$this->clase.'">'.chr(13);
318                $HTML_calendario.='<TR>'.chr(13);
319                $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">Time for action performance</TH>';
320                $HTML_calendario.='<TH>Mod</TH>';
321                $HTML_calendario.='<TH>Min.</TH>';
322                //$HTML_calendario.='<TH>Seg.</TH></TR>';
323                $HTML_calendario.='<TR>'.chr(13);
324                for ($i=1;$i<13;$i++)
325                        $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);
326
327                $HTML_calendario.='<TD align=center>';
328                $HTML_calendario.= '<SELECT class="estilodesple" id="ampm">'.chr(13);
329                $HTML_calendario.= '<OPTION  value=0>A.M.</OPTION>'.chr(13);
330                $HTML_calendario.= '<OPTION selected value=1 >P.M.</OPTION>'.chr(13);
331                $HTML_calendario.='</SELECT>'.chr(13);
332                $HTML_calendario.='</TD>        '.chr(13);
333
334                $HTML_calendario.='<TD align=center>';
335                $HTML_calendario.='<INPUT   type=text class=cajatexto id=minutos size=1>'.chr(13);
336                $HTML_calendario.='</TD>        '.chr(13);
337
338                $HTML_calendario.='</TR>'.chr(13);
339                $HTML_calendario.='</TABLE>'.chr(13);
340
341                return($HTML_calendario);
342        }
343/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
344                Esta función devuelve una cadena con el código HTML con las horas hasta de reserva de las aulas
345________________________________________________________________________________________________________*/
346        function HorasReserva($literal,$nombretabla,$nombreampm,$nombreminuto){
347                if($literal=="1")
348                        $literal="Start of the reserve";
349                else
350                        $literal="End of the reserve";
351                $HTML_calendario='<TABLE  id="'.$nombretabla.'" class="'.$this->clase.'">'.chr(13);
352                $HTML_calendario.='<TR>'.chr(13);
353                $HTML_calendario.='<TH colspan=12 style="cursor:hand" onclick="TH_'.$this->onclick.'">'.$literal.' </TH>';
354                $HTML_calendario.='<TH>Mod</TH>';
355                $HTML_calendario.='<TH>Min.</TH>';
356                $HTML_calendario.='<TR>'.chr(13);
357                for ($i=1;$i<13;$i++)
358                        $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);
359
360                $HTML_calendario.='<TD align=center>';
361                $HTML_calendario.= '<SELECT class="estilodesple" id="'.$nombreampm.'">'.chr(13);
362                $HTML_calendario.= '<OPTION value=0>A.M.</OPTION>'.chr(13);
363                $HTML_calendario.= '<OPTION selected value=1  >P.M.</OPTION>'.chr(13);
364                $HTML_calendario.='</SELECT>'.chr(13);
365                $HTML_calendario.='</TD>        '.chr(13);
366
367                $HTML_calendario.='<TD align=center>';
368                $HTML_calendario.='<INPUT   type=text class=cajatexto id="'.$nombreminuto.'" size=1>'.chr(13);
369                $HTML_calendario.='</TD>        '.chr(13);
370
371                $HTML_calendario.='</TR>'.chr(13);
372                $HTML_calendario.='</TABLE>'.chr(13);
373
374                return($HTML_calendario);
375        }
376        /* -------------------------------------------------------------------------------------------
377                Esta función devuelve una cadena con el código HTML con las horas de apertura de las aulas
378        ----------------------------------------------------------------------------------------------*/
379        function Horas_Completas(){
380                $maxcolumnas=16;
381
382                $HTML_calendario='<TABLE id="tabla_horas" class="'.$this->clase.'">'.chr(13);
383                $HTML_calendario.='<TR>'.chr(13);
384                $HTML_calendario.='<TH colspan='.$maxcolumnas.'>Horas</TH><TR>'.chr(13); // Literal Horas
385                $HTML_calendario.='<TR>'.chr(13);
386                $currenthora=0;
387                $currentminutos=0;
388                $currenthorario=$currenthora.":".$currentminutos;
389                for ($i=1;$i<97;$i++){
390                        if($currentminutos==0) $currenthorario.="0";
391
392                        $HTML_calendario.='<TD align=center id="'.$currenthorario.'"  style="cursor:hand" onmouseover="'.$this->onmouseover.'" onmouseout="'.$this->onmouseout.'" onclick="'.$this->onclick.'">'.$currenthorario.'</TD>'.chr(13);
393                        $currentminutos+=15;
394                        if($currentminutos==60) {
395                                $currenthora++;
396                                if($currenthora==24)    $currenthora=0;
397                                $currentminutos=0;
398                        }
399                        $currenthorario=$currenthora.":".$currentminutos;
400                        if ($i%$maxcolumnas==0) $HTML_calendario.='</TR><TR>'.chr(13);
401                }
402        $HTML_calendario.='</TR></TABLE>'.chr(13);
403        return($HTML_calendario);
404        }
405} // Fin de la clase Almanaque
Note: See TracBrowser for help on using the repository browser.