Autor Tema: JavaScript calcular el intervalo de tiempo entre dos eventos click CU01163E  (Leído 2937 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Dejo la entrega del Ejercicio CU01163E del tutorial de programación web javascript toDateString toLocaleTimeString metodos date fechas.

EJERCICIO 1
Citar

Crea un script donde se calcule el tiempo en minutos entre que se formula primera petición al usuario y este responde, y entre una segunda petición al usuario y este responde. Ejemplo:

Introduzca su nombre: Alfredo >> Introduzca su país: Colombia >> Han pasado 0.122 minutos entre su primera y segunda respuesta.

Otro ejemplo: Introduzca su nombre: Juan >> Introduzca su país: Chile >> Han pasado 0.73 minutos entre su primera y segunda respuesta.

Código: [Seleccionar]
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">

<script type="text/javascript">
function Comenzar()
{

var msg="";
inicioInter = new Date();// Inicio de intervalo
var nomb=prompt('Introduzca su nombre :');
var pais=prompt('Introduzca su país   :');
msg=msg+"Su nombre es :"+nomb+" y es de : "+pais+"\n"
finInter= new Date();    // Fin del intervalo
var minutos=(finInter.getTime() - inicioInter.getTime())/(1000*60) // 1000 milisegundos un segundo
msg=msg+'Han pasado '+minutos+' minutos entre su primera y segunda respuesta.\n';
alert(msg);

}

 
</script>




<style type="text/css">
body{
background-color:yellow;
text-align:center;
}
 

  #copy{
  color:black;
  display:block;
  margin:38%;
  padding:5px;
}


</style>
</head>
<body  >
<h1>Aprenderaprogramar.com</h1>
<h2>Ejercicio CU01163E</h2>
<h3>Intervalos de tiempo</h3>
</div>
<div id="Contenedor">
<input type="button" value="   Comprobar   " onclick="Comenzar()">
 
<p id="copy">&copy;parasabermas@hayquestudiar.com</p>
</body
</html>


EJERCICIO 2
Citar
Crea un script donde pida al usuario que introduzca una primera fecha (fecha1) en formato dd-mm-yyyy, y una segunda fecha en el mismo formato y calcule los días que han pasado entre las dos fechas . Ejemplo: Introduzca la fecha 1: 05-09-2076 >> Introduzca la fecha 2: 09-09-2076 >> Entre las 00:00 horas del primer día a las 00:00 del segundo hay 4 días.

Código: [Seleccionar]
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">

<script type="text/javascript">
function Comenzar()
{
var msg="";
//Coger fechas del calendario
var inputFech1 = document.getElementById("fecha1").value;
var inputFech2 = document.getElementById("fecha2").value;
//Dar formato Date a la fecha entrada en formulario
var dateFecha1=new Date(inputFech1);
var dateFecha2=new Date(inputFech2);
//Validar que la fecha1 sea menor que la fecha2
if(dateFecha2<dateFecha1)
{
msg=msg+"Fecha2 debe de ser mayor o igual que Fecha1";
}
//Si la fecha devuelve NaN no es correcta
else if (isNaN(dateFecha1) || isNaN(dateFecha2))
{
msg=msg+"La fecha introducida es incorrecta o el valor es nulo";
}
// Si la fecha es correcta presentar datos
else
{
//Coger el tiempo de las dos fechas y restarlo el resultado sera la diferiencia en milisegundos
var diasDif = (dateFecha2.getTime() - dateFecha1.getTime());
//   1,000 * 60s =    60,000 milisegundos un minuto
//  60,000 * 60m =   360,000      "       una hora
// 360,000 * 24h = 8,640,000 milisegundos un dia
// diasDif(en milisegundos)/8,640,000 mseg dia = dias de diferencia
//sumamos uno par que incluya el primer dia desde las 00:00:00 hasta las 23:59:59
var dias = Math.round(diasDif/(1000 * 60 * 60 * 24))+1;//sumamos uno par que incluya el primer dia desde las 00:00
msg=msg+"Desde las 00:00 del dia :"+dateFecha1.toLocaleDateString()+" A las 00:00 del dia : "+dateFecha2.toLocaleDateString()+"\n";
msg=msg+"hay : "+dias+" dia(s) de diferencia\n";
msg=msg+"Primer dia incluido desde las 00:00 horas";
}

alert(msg);


}

 
</script>




<style type="text/css">
body{
background-color:yellow;
text-align:center;
}
 

  #copy{
  color:black;
  display:block;
  margin:20%;
  padding:5px;
}


</style>
</head>
<body >
<h1>Aprenderaprogramar.com</h1>
<h2>Ejercicio CU01163E</h2>
<h3>Dias pasados entre dos fechas</h3>
<h4>Introducir Fecha1 menor que Fecha2</h4>
<p><strong>Fecha 1 :</strong><input type="date" id="fecha1" name="fecha2" ></input></p>
  <p><strong>Fecha 2:</strong><input type="date" id="fecha2" name="fecha2"  ></input></p>
   <input type="button" value="   Comprobar   " onclick="Comenzar()">
</div>
<div id="Contenedor">
<p id="copy">&copy;parasabermas@hayquestudiar.com</p>
</body
</html>


Hasta luego.
Gracias.  ;)
« Última modificación: 17 de Junio 2018, 13:47 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Buenas, el ejercicio 1 está correcto. En el ejercicio 2 al hacer pruebas me he encontrado un pequeño problema. Si le introduzco como fecha 1 un día y como fecha 2 el mismo día, me aparece un mensaje del tipo:

Desde las 00:00 del dia :5/6/2094 A las 00:00 del dia : 5/6/2094
hay : 1 dia(s) de diferencia
Primer dia incluido desde las 00:00 horas

Si introduzco un día de diferencia me dice que hay 2

Desde las 00:00 del dia :5/6/2094 A las 00:00 del dia : 6/6/2094
hay : 2 dia(s) de diferencia
Primer dia incluido desde las 00:00 horas

Esto no es correcto, habría que corregir el código.

Una sorpresa con la que me he encontrado es que en el navegador que estoy utilizando al tener input type="date" automáticamente me aparece un calendario de selección cuando hago click en la caja para selección de fecha. En navegadores más antiguos creo que esto no funcione.

Al igual que en otras ocasiones indicar que hay algo que no es adecuado: el nombre de la función Comenzar no describe lo que es o hace la función. Esto se considera una mala práctica de programación porque en programas de miles de líneas hace el código confuso y difícil de depurar. Si se quiere incluir todo en una función en este caso podría llamarse codigo_ejercicio_CU01163E_1, algo que indique qué es o qué hace el código.

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".