Inicio Desarrollo Web en Entorno Cliente Ejercicio Básico JavaScript: Programa para calcular la diferencia en días entre dos fechas, usando el objeto Date
Javascript

Ejercicio Básico JavaScript: Programa para calcular la diferencia en días entre dos fechas, usando el objeto Date

por entreunosyceros
Publicado el Última actualización el

En el post de esta noche voy a dejar un pequeño programa en JavaScript. El programa que se pide es uno que pida al usuario una fecha inicial, en formato dd/mm/aaaa, y otra fecha final con el mismo formato. Como resultado final tendrá que obtenerse el número de días entre ambas fechas. Para realizarlo es obligatorio el uso de los métodos del objeto Date.

Para este ejercicio no se pide más control de errores que asegurarse que solo se toman dos caracteres en el caso de los días, otros dos en caso de los meses y cuatro en cuanto al año se refiere. En ningún momento se pide que se controle si son números o letras ni nada de eso, pero sería lo óptimo … si algún día tengo tiempo lo modificaré … y sino el que quiera que lo modifique y lo mejore (y si eso que  lo comparte).

 Calcular la diferencia en días entre dos fechas

 <html> <head> <title>D&iacute;as entre fechas</title> <script language="javascript"> fecha1=null; fecha2=null; var patron=/^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/](19|20)\d{2}$/;//patrón para la fecha1 fecha1=prompt("Escribe una fecha.\n Formato (dd/mm/aaaa)"); if ( !patron.test(fecha1)) { alert ("No has introducido un valor correcto.\n Valores posibles:\nDias; min[01], max[31].\nMeses; min[01], max[12].\nAnho: min[1900],max[2099]"); } else { var dia1= fecha1.substr(0,2); //tomamos los dos primeros valores de la fecha var mes1= fecha1.substr(3,2); //tomamos los dos siguiente valores var anyo1= fecha1.substr(6); //tomamos el año var patron=/^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/](19|20)\d{2}$/; //patrón para la fecha1 fecha2=prompt("Escribe una segunda fecha.\n Formato (dd/mm/aaaa)"); if ( !patron.test(fecha2)) { alert ("No has introducido un valor correcto.\n Valores posibles:\nDias; min[01], max[31].\nMeses; min[01], max[12].\nAnho: min[1900],max[2099]"); } else { var dia2= fecha2.substr(0,2);//tomamos los dos primeros valores de la fecha var mes2= fecha2.substr(3,2);//tomamos los dos siguiente valores var anyo2= fecha2.substr(6);//tomamos el año var nuevafecha1= new Date(anyo1+","+mes1+","+dia1); //instanciamos un objeto de Date como nuevafecha1 y le añadimos los datos de fecha1 var nuevafecha2= new Date(anyo2+","+mes2+","+dia2);//instanciamos un objeto de Date como nuevafecha2 y le añadimos los datos de fecha2 var Dif= nuevafecha2.getTime() - nuevafecha1.getTime(); //tomamos los milisegundos de cada una de las fechas y y realizamos la resta if (Dif<0) Dif*=-1; var dias= Math.floor(Dif/(1000*24*60*60)); //pasamos los milisegundos a días alert("Entre el "+dia1+"/"+mes1+"/"+anyo1+" y "+dia2+"/"+mes2+"/"+anyo2+" transcurren "+dias+" dias"); //ventana emergente con el resultado } } </script> </head> <body> <div align="center"><h1>Ejercicio 5. Diferencia entre fechas</h1></div> <div align='center'><input type='button' value='VOLVER ATRÁS' name='atras' onclick='history.back()'/></div> </body> </html> 

 


También te puede interesar ...

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

logo expressVPN - Obtén 30 días gratis

Si te preocupa la seguridad de tus datos, o si quieres saltarte los geobloqueos para ver tus streamings favoritos, consigue una VPN segura y de calidad GRATIS durante 30 días (cancela cuando tú quieras, sin coste alguno). Disponible para todas las plataformas y navegadores.