Inicio Apuntes FPApuntes DAWEjercicio 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

Publicado por entreunosyceros
Publicado el: Última actualización:

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>

 

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.