Foros del Web » Programando para Internet » Javascript »

Ultimo dia del mes

Estas en el tema de Ultimo dia del mes en el foro de Javascript en Foros del Web. Saludos. Tengo dos text; en uno digito la fecha de emision de un documento y en el otro automaticamente debe aparecer la nueva fecha con ...
  #1 (permalink)  
Antiguo 07/11/2006, 07:02
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Pregunta Ultimo dia del mes

Saludos.

Tengo dos text; en uno digito la fecha de emision de un documento y en el otro automaticamente debe aparecer la nueva fecha con el ultimo dia del mes y año que digito; me explico:
Digito en formato(mm/dd/aaaa):
10/11/2006 debe aparecer 10/31/2006
02/01/2006 debe aparecer 02/28/2006

10/11/2008 debe aparecer 10/31/2008
02/01/2008 debe aparecer 02/29/2008

Agradezco la ayuda y sugerencias que me puedan brindar...
  #2 (permalink)  
Antiguo 07/11/2006, 08:55
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Hola amigo, espero que esto te sirva:

Código HTML:
<html>
<head>
<script language="javascript">

   function dias(mes, anno) {
      mes = parseInt(mes);
	  anno = parseInt(anno);
      switch (mes) {
	    case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : return 31;
		case 2 : return (anno % 4 == 0) ? 29 : 28;
	  }
	  return 30;
   }
   
   function ultimodia(elemento) {
      var arreglo = elemento.split("/");
	  var dia = arreglo[1];
	  var mes = arreglo[0];
	  var anno = arreglo[2];
	  
      dia = dias(mes, anno);
	  
	  document.getElementById("fecha2").value = (mes+"/"+dia+"/"+anno);
   }
</script>
</head>

<body>
<form name="fechas">
   <input type="text" name="fecha1" id="fecha1" onblur="ultimodia(this.value)"/>
   <input type="text" name="fecha2" id="fecha2" readonly="true"/>
</form>
</body>
</html> 
Cuando fecha1 pierde el foco es que se genera el último día del mes. Otra cosa... tienes que garantizar tu que lo que le pase a fecha1 tenga el formato mm/dd/aaaa.
__________________
El último TipdaR
  #3 (permalink)  
Antiguo 07/11/2006, 09:16
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Hice una diminuta modificacion

function dias(mes, anno)
{
// mes = parseInt(mes);
anno = parseInt(anno);
switch (mes)
{
case '01' :
case '03' :
case '05' :
case '07' :
case '08' :
case '10' :
case '12' : return 31;
case '02' : return (anno % 4 == 0) ? 29 : 28;
}
return 30;
}

Porque aqui deben digitar 08/01/2006 no 8/01/2006; el codigo anterior me arrojaba que agosto tiene 30 dias si digitaba 08; es correcto hacerlo de esta forma Tipdar???

Agradezco tu valiosa colaboración
  #4 (permalink)  
Antiguo 07/11/2006, 09:23
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Creo que sería mejor esta modificación, ya que te serviriía para todos los casos:

Código HTML:
function dias(mes, anno) {
      if (mes.charAt(0) == '0')
	     mes = mes.charAt(1);
      mes = parseInt(mes);
	  anno = parseInt(anno);
      switch (mes) {
	    case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : return 31;
		case 2 : return (anno % 4 == 0) ? 29 : 28;
	  }
	  return 30;
   }
Espero que eso pueda ayudarte
__________________
El último TipdaR
  #5 (permalink)  
Antiguo 07/11/2006, 10:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Genial!!!

Muchas gracias Tipdar

Eso es lo que necesito y para todos los meses lo calcula bien
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 03:42.