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

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.

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.