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

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

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>


 







¿Qué te ha parecido este post?

¡Haz clic en una estrella para calificarla!

Puntuación media 0 / 5. Recuento de votos: 0

¡No hay votos hasta ahora! Sé el primero en calificar esta publicación.

No te pierdas otros artículos ...

¡Síguenos en las redes sociales!

¡Lamentamos que esta publicación no te haya sido útil!

¡Permítanos mejorar esta publicación!

¿Cuéntanos cómo podemos mejorar esta publicación?

Deja una respuesta

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