Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: paramonso en 15 de Febrero 2018, 09:35
-
Hola. Dejo la entrega del Ejercicio CU01163E del tutorial de programación web javascript toDateString toLocaleTimeString metodos date fechas.
EJERCICIO 1
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.
<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">©parasabermas@hayquestudiar.com</p>
</body
</html>
EJERCICIO 2
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.
<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">©parasabermas@hayquestudiar.com</p>
</body
</html>
Hasta luego.
Gracias. ;)
-
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