lunes, 16 de diciembre de 2013

Javascript - Meses del Año

Javascript - Meses del Año

Ahora lo que hacemos es mostrar los meses del año e indicar la cantidad de dias que tiene cada mes.

<html>
    <head>
    <title>Meses</title>
    </head>
        <body>
            <br/>
            <script type="text/javascript">
           
           
                  
            var meses = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
            var dias=[" tiene 28 dias"," tiene 30 dias"," tiene 31 dias"];
           
            function mes(m)
            {

             switch(m)
             {
           
              case 1:
              return meses[0]+dias[2];
              break;
              case 2:
              return meses[1]+dias[0];
              break;
              case 3:
              return meses[2]+dias[2];
              break;
              case 4:
              return meses[3]+dias[1];
              break;
              case 5:
              return meses[4]+dias[2];
              break;
              case 6:
              return meses[5]+dias[1];
              break;
              case 7:
              return meses[6]+dias[2];
              break;
              case 8:
              return meses[7]+dias[2];
              break;
              case 9:
              return meses[8]+dias[1];
              break;
              case 10:
              return meses[9]+dias[2];
              break;
              case 11:
              return meses[10]+dias[1];
              break;
              case 12:
              return meses[11]+dias[2];
              break;
           
             }
           
           
            }
           
            diasMeses=mes(2);
            document.write(diasMeses);
           
            </script>
        </body>

</html>


Primero asignamos en una variable los meses, que vendria a ser como un array de datos
ya que no guarda la informacion en una variable que contendra multiples valores,
al igual que los dias, solo almacena tres valores, que son la cantidad de dias que pueden tener los meses,  al estar almacenados en una variable gral. los valores tomararan un valor numerico, en este caso se comienza por defecto con el valor 0, osea enero toma valor 0 ( meses[0] )
Lo mismo pasa con los dias, toma el valor 0 ( dias[0] ) en este caso de dias 0 mostrara el resultado de valor o dato que esta en la variable dias, que seria " tiene 28 dias ".

Despues que asignamos los valores a los meses y dias, lo que hacemos es hacer uso de una function,
y usamos un switch para que nos muestre el mes segun indiquemos en la function.

En el primero case o caso del switch nos dice que si el valor ingresado es 1 que seria enero nos retorne return meses[0]+dias[2]; xq que meses 0 y dias 2, simplemente xq 0 es el valor default que comienza en la variable de meses, 0= enero, y dias 2 xq 2 =  " tiene 30 dias" que seria el resultado de " Enero tiene 30 dias " = return meses[0]+dias[2];

Y asi va comparando los casos segun el valor ingresado en la function cambiara las variables,
en el  switch solo se comparara los casos y segun el valor ingresado nos retornara la informacion y dejara de repetir cuando se encuentre el caso a mostrar, como el metodoes maual, no hace falta agregar un default xq no creo que se ingrese como valor de mes un numero mayor a 12 y menor a 1.







Ahora mostraremos los meses haciendo uso de for.


<html>
    <head>
    <title>Meses</title>
    </head>
        <body>
            <br/>
            <script type="text/javascript">
            var dias=[" tiene 28 dias"," tiene 30 dias"," tiene 31 dias"];
            var meses = ["Enero "+dias[2], "Febrero"+dias[0], "Marzo"+dias[2], "Abril"+dias[1], "Mayo"+dias[2], "Junio"+dias[1], "Julio"+dias[2], "Agosto"+dias[2], "Septiembre"+dias[1], "Octubre"+dias[2], "Noviembre"+dias[1], "Diciembre"+dias[2]];

            function mesesDias(m)
            {           
                for(m=0; m<12; m++)
                  {
                   document.write(meses[m]+"<br/>");
                  }
           
           
            }
           
            mesesDias(3)
            </script>
        </body>

</html>





Usaremos las variables ya definidas que nos guardara la informacion que queremos mostrar,  declaramos los valores para meses y dias, pero ahora incluiremos los dias dentro de los valores de los meses asi ya tomara ambos resultados en la variable de meses, el orden es igual, comienza con valores en 0 , asi que la variable dias tiene tres, 0,1 y 2, respectivamente toma el orden que estan en la variable de dias, y en meses tambien toma desde 0 y segun el orden que este van de 0 a 11.

Asiganmos los dias segun el mes, y solo concatenamos los meses con los dias (+dias[x] )

despues hacemos uso de la function y utilizamos el for,
que nos repetira la function, que se inicializa en 0 y termina en menor a 12,
recordar que las variables de los datos asignados van desde 0 a 11.
Asi que solo toma que el for repita en un ciclo lo que indicamos con el socument.write que nos indica cada mes con sus respectivos dias.




Por ultimo hacemos un ejemplo  donde se pida ingresar el valor del mes para mostrar los dias.




<html>
    <head>
    <title>Meses</title>
    </head>
        <body>
            <br/>
            <script type="text/javascript">
            var en="Enero tienen 31 dias";
            var fe="Febrero tienen 28 dias";
            var ma="Marzo tienen 31 dias";
            var ab="Abril tienen 30 dias";
            var my="Mayo tienen 31 dias";
            var jn="Junio tienen 30 dias";
            var jl="Julio tienen 31 dias";
            var ag="Agosto tienen 31 dias";
            var sp="Septiembre tienen 30 dias";
            var oc="Octubre tienen 31 dias";
            var nv="Noviembre tienen 30 dias";
            var dc="Diciembre tienen 31 dias";
           
            var m=prompt("Ingrese el numero del mes");
           
            while(m=="" || m<=0 || m>12)
            {
              m=prompt("Ingrese el numero del mes correctamente");
            }
            function meses(m)
            {           
              if(m==1)
              {
               return en;
              }else
               {
                 if(m==2)
                 {
                  return fe;
                 }else
                 {
                  if(m==3)
                  {
                   return ma;
                  }else
                  {
                   if(m==4)
                   {
                    return ab;
                   }else
                   {
                    if(m==5)
                    {
                     return my;
                    }else
                    {
                     if(m==6)
                     {
                      return jn;
                     }else
                     {
                      if(m==7)
                      {
                       return jl;
                      }else
                      {
                       if(m==8)
                       {
                        return ag;
                       }else
                       {
                        if(m==9)
                        {
                         return sp;
                        }else
                        {
                         if(m==10)
                         {
                          return oc;
                         }else
                         {
                          if(m==11)
                          {
                           return nv;
                          }else
                          {
                           if(m==12)
                           {
                            return dc;
                           }
                          }
                         }
                        }
                       
                       }
                      }
                     }
                    }
                   }
                  }
                 }
               }

           
           
           
            }
           
            document.write(meses(m));
           
            /*
           
            Tambien podemos retornar con un mensaje
            Solo cambiar
           
            document.write(meses(m));
           
            por:
           
            alert(meses(m));
           
            */
           
           
            </script>
        </body>

</html>

Aqui primero declaramos todas las variables de los meses e indicamos la cantidad de dias que le corresponde a cada mes. Despues hacemos un prompt a una variable que toma el mismo nombre de la fucntion que queremos indicar, asi este valor se ingresara directamente en la function y procedera a hacer lo indicado dentro de ella segun el valor, tambien hacemos el uso de un while para que no permita que se deje el campo vacio o que sea menor a 1 o mayor a 12, asi si lo esta hace un ciclo repetitivo hasta que se ingresa el mes deseado y pasa al siguiente paso.
Ahora en la function meses que se guarda en m
hacemos uso de if, lo cual ira comparando los valores y nos retornara las variables ya asignadas,
si nos indica que el valor de m = 1 nos retorna en, cosa que ya declaramos que es en la variable enero, y asi es con las demas, nos retorna segun la variable que se le asigna a cada valor por cada numero que ingresamos..

FInalmente hacemos la llamada a la function que nos habra retornado el mes segun indicamos
document.write(meses(m)

o tambien podemos llamarlo con un alert que seria de esta manera:

alert(meses(m));



No hay comentarios:

Publicar un comentario