Foros del Web » Programando para Internet » Javascript »

problema fecha

Estas en el tema de problema fecha en el foro de Javascript en Foros del Web. Holas pues tengo mi formulario en el cual tengo fechas de ingreso y retiro el script me funciona bien solo tiene un error y es ...
  #1 (permalink)  
Antiguo 31/03/2007, 16:01
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
problema fecha

Holas pues tengo mi formulario en el cual tengo fechas de ingreso y retiro el script me funciona bien solo tiene un error y es cuando fecha ingreso es 31 de marzo como hoy y la de retiro deberia ser 1 de abril pues me cambia el dia bien pero no el mes alguna sugerencia es solo como hago dentro de mi script que sepa que cuando la fecha de retiro el dia es = a 1 el mes aumente tambien ??? la idea la tengo pero no se implementarlo :P por que no me manejo mucho en javascript

mi codigo

Código:
<!-- Ingreso de fechas -->
  <script language="JavaScript" type="text/javascript">
  
    ahora          = new Date();
    ahoraDay    = ahora.getDate();
    ahoraMonth = ahora.getMonth();
    ahoraYear   = ahora.getYear();


 if (ahoraYear < 2000) 
        ahoraYear += 1900;

 
    function cuantosDias(mes, anyo)
    {
        var cuantosDias = 31;
        if (mes == "Abril" || mes == "Junio" || mes == "Septiembre" || mes == "Noviembre")
      cuantosDias = 30;
        if (mes == "Febrero" && (anyo/4) != Math.floor(anyo/4))
      cuantosDias = 28;
        if (mes == "Febrero" && (anyo/4) == Math.floor(anyo/4))
      cuantosDias = 29;
        return cuantosDias;
    }

 
    function asignaDias()
    {
        comboDias = document.formFecha.seleccionaDia;
        comboMeses = document.formFecha.seleccionaMes;
        comboAnyos = document.formFecha.seleccionaAnyo;

        Month = comboMeses[comboMeses.selectedIndex].text;
        Year = comboAnyos[comboAnyos.selectedIndex].text;

        diasEnMes = cuantosDias(Month, Year);
        diasAhora = comboDias.length;

        if (diasAhora > diasEnMes)
        {
            for (i=0; i<(diasAhora-diasEnMes); i++)
            {
                comboDias.options[comboDias.options.length - 1] = null
            }
        }
        if (diasEnMes > diasAhora)
        {
            for (i=0; i<(diasEnMes-diasAhora); i++)
            {
                sumaOpcion = new Option(comboDias.options.length + 1);
                comboDias.options[comboDias.options.length]=sumaOpcion;
            }
        }
        if (comboDias.selectedIndex < 0) 
          comboDias.selectedIndex = 0;
     }


    function ponDia()
    {
        comboDias = eval("document.formFecha.seleccionaDia");
        comboMeses = eval("document.formFecha.seleccionaMes");
        comboAnyos = eval("document.formFecha.seleccionaAnyo");

        comboAnyos[0].selected = true;
        comboMeses[ahoraMonth].selected = true;
  
        asignaDias();

        comboDias[ahoraDay-1].selected = true;
    }

 
    function rellenaAnyos(masAnyos)
    {
        cadena = "";

        for (i=0; i<masAnyos; i++)
        {
            cadena += "<option>";
            cadena += ahoraYear + i;
        }
        return cadena;
    }
  </script>
<!-- fechas de retiro -->
<script language="JavaScript" type="text/javascript">
  
    now          = new Date();
    nowDay    = now.getDate();
    nowMonth = now.getMonth();
    nowYear   = now.getYear();


 if (nowYear < 2000) 
        nowYear += 1900;

 
    function cdias(mes, anyo)
    {
        var cdias = 31;
        if (mes == "Abril" || mes == "Junio" || mes == "Septiembre" || mes == "Noviembre")
      cdias = 30;
        if (mes == "Febrero" && (anyo/4) != Math.floor(anyo/4))
      cdias = 28;
        if (mes == "Febrero" && (anyo/4) == Math.floor(anyo/4))
      cdias = 29;
        return cdias;
    }


    function asigdias()
    {
        comdias = document.formFecha.findia;
        commeses = document.formFecha.finmes;
        comanyos = document.formFecha.finanyo;

        Month = commeses[commeses.selectedIndex].text;
        Year = comanyos[comanyos.selectedIndex].text;

        demes = cdias(Month, Year);
        diasnow = comdias.length;

        if (diasnow > demes)
        {
            for (i=0; i<(diasnow-demes); i++)
            {
                comdias.options[comdias.options.length - 1] = null
            }
        }
        if (demes > diasnow)
        {
            for (i=0; i<(demes-diasnow); i++)
            {
                sumaOpcion = new Option(comdias.options.length + 1);
                comdias.options[comdias.options.length]=sumaOpcion;
            }
        }
        if (comdias.selectedIndex < 0) 
          comdias.selectedIndex = 0;
     }

 
    function insertadia()
    {
        comdias = eval("document.formFecha.findia");
        commeses = eval("document.formFecha.finmes");
        comanyos = eval("document.formFecha.finanyo");

        comanyos[0].selected = true;
        commeses[nowMonth].selected = true;
  
        asigdias();

        comdias[nowDay].selected = true;
    }


    function llenaanyos(moreanyos)
    {
        cadena = "";

        for (i=0; i<moreanyos; i++)
        {
            cadena += "<option>";
            cadena += nowYear + i;
        }
        return cadena;
    }
  </script>

//// eso iba en el head 
///ahora lo del body 

///select de ingreso
<select name="seleccionaDia" class="fecha">
                      <option value="01">1 
                      <option value="02">2 
                      <option value="03">3 
                      <option value="04">4 
                      <option value="05">5 
                      <option value="06">6 
                      <option value="07">7 
                      <option value="08">8 
                      <option value="09">9 
                      <option>10 
                      <option>11 
                      <option>12 
                      <option>13 
                      <option>14 
                      <option>15 
                      <option>16 
                      <option>17 
                      <option>18 
                      <option>19 
                      <option>20 
                      <option>21 
                      <option>22 
                      <option>23 
                      <option>24 
                      <option>25 
                      <option>26 
                      <option>27 
                      <option>28 
                      <option>29 
                      <option>30 
                      <option>31 
                    </select>
                    <select name="seleccionaMes" class="fecha" onchange="asignaDias()">
                      <option value="01">Enero 
                      <option value="02">Febrero 
                      <option value="03">Marzo 
                      <option value="04">Abril 
                      <option value="05">Mayo 
                      <option value="06">Junio 
                      <option value="07">Julio 
                      <option value="08">Agosto 
                      <option value="09">Septiembre 
                      <option value="10">Octubre 
                      <option value="11">Noviembre 
                      <option value="12">Diciembre 
                    </select>
                    <select name="seleccionaAnyo" class="fecha" onchange="asignaDias()">
                      <script language="JavaScript" type="text/javascript">
        document.write(rellenaAnyos(2));
    </script>
                    </select>

//////select de retiro
<select name="findia" class="fecha">
                      <option value="01">1 
                      <option value="02">2 
                      <option value="03">3 
                      <option value="04">4 
                      <option value="05">5 
                      <option value="06">6 
                      <option value="07">7 
                      <option value="08">8 
                      <option value="09">9 
                      <option>10 
                      <option>11 
                      <option>12 
                      <option>13 
                      <option>14 
                      <option>15 
                      <option>16 
                      <option>17 
                      <option>18 
                      <option>19 
                      <option>20 
                      <option>21 
                      <option>22 
                      <option>23 
                      <option>24 
                      <option>25 
                      <option>26 
                      <option>27 
                      <option>28 
                      <option>29 
                      <option>30 
                      <option>31 
                    </select>
                    <select name="finmes" class="fecha" onchange="asigdias()">
                      <option value="01">Enero 
                      <option value="02">Febrero 
                      <option value="03">Marzo 
                      <option value="04">Abril 
                      <option value="05">Mayo 
                      <option value="06">Junio 
                      <option value="07">Julio 
                      <option value="08">Agosto 
                      <option value="09">Septiembre 
                      <option value="10">Octubre 
                      <option value="11">Noviembre 
                      <option value="12">Diciembre 
                    </select>
                    <select name="finanyo" class="fecha" onchange="asigdias()">
                      <script language="JavaScript" type="text/javascript">
        document.write(llenaanyos(2));
    </script>
                    </select>
gracias al que quiera hechar una mano ;)
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 01/04/2007, 22:39
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: problema fecha

revivo esto esque lo necesito y no se que hacer :/ plis una manito :P
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 02/04/2007, 01:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: problema fecha

Hola:

Te paso un tema viejo con el problema resuelto: Sumar a una fecha, dias

Espero que te sirva.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:46.