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: Dimitar Stefanov en 26 de Marzo 2016, 16:26

Título: JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: Dimitar Stefanov en 26 de Marzo 2016, 16:26
Buenas tardes.

Procedo a la exposición de una posible soluciones de los ejercicios de la entrega CU01163E del curso JavaScript desde cero.

Primer ejercicio:

Citar
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.

El codigo:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

window.onload = function(){

var pregunta = confirm('Al pulsar aceptar comienza a contar el tiempo. Sabes cuál es la única palabra (en español) que contiene las 5 vocales"?');

if(pregunta==true){
var primeraToma = Date.now();
}else{};

var pista = ["M","u","r","c","i","e","l","a","g","o"];
var ayuda = ' ';
i = 0;

do{
var contestacion = prompt('Pon la respuesta aquí:');
contestacion = contestacion.toLowerCase();
if(contestacion!='murcielago' && i<pista.length-1){
ayuda = ayuda+pista[i];
alert('Respuesta Incorrecta!\nEmpieza por: '+ayuda);
i++;
}else if(contestacion!='murcielago'){
alert('La respuesta es: '+ayuda+pista[i]);
i++;
}
}while(contestacion!='murcielago' && i<pista.length);

if(contestacion){
var segundaToma = Date.now();
}

resultado = (segundaToma-primeraToma)/1000;

alert("Has contestado en: "+resultado+" segundos!!!");
if(resultado<10){
alert('Eres un crack!!!');
}else if(resultado>10 && resultado<20){
alert('Eres un poco lento');
}else{
alert('Muy lento');
}
}

</script>
</head>
<body>
</body>
</html>

El segundo ejercicio:

Citar
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.

El código:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<style type="text/css">
#principal{
text-align: center;
padding: 100px;
font-size: 24px;
}
</style>
<script type="text/javascript">

var primeraEntrada = prompt('Entra una fecha en formato: aaaa-mm-dd');
primeraEntrada = primeraEntrada+'T00:00:00';
primeraEntrada = Date.parse(primeraEntrada);

var segundaEntrada = prompt('Entra una segunda fecha en formato: aaaa-mm-dd');
segundaEntrada = segundaEntrada+'T00:00:00';
segundaEntrada = Date.parse(segundaEntrada);

if(segundaEntrada<primeraEntrada){
var resultado = ((((primeraEntrada - segundaEntrada)/1000)/60)/60)/24;
}else{
var resultado = ((((segundaEntrada - primeraEntrada)/1000)/60)/60)/24;
}

if(resultado == 1){
resultado = 'Entra las dos fechas ha pasado: '+resultado+' día';
}else{
resultado = 'Entra las dos fechas han pasado: '+resultado+' días';
}

window.onload = function(){
principal.innerHTML = resultado;
}

</script>
</head>
<body>
<div id="principal"></div>
</body>
</html>

Gracias.
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: César Krall en 29 de Marzo 2016, 15:36
Hola!

El ejercicio 1 lo veo resuelto de una forma muy original

El ejercicio 2 también lo veo muy bien resuelto, aunque aquí no me ha gustado mucho la organización del código, me refiero a pedir las fechas y después dar la respuesta con el window.onload (veo preferible que se ejecute el código cuando se pulsa un botón por ejemplo como hace Pedro en https://www.aprenderaprogramar.com/foros/index.php?topic=3536.0)

También has cambiado el formato que tenía que ser dd-mm-yyyy por yyyy-mm-dd

De cualquier forma buen trabajo

Saludos!
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: Dimitar Stefanov en 29 de Marzo 2016, 21:07
Buenas tardes, César Krall.

Primero que nada, gracias por tu tiempo y por corregirme el ejercicio.

Tienes razón, debería de haberlo puesto como una ejecución de un botón. Reconzco que mis códigos son un poco "caóticos" a veces, jeje. Tendría que tener más cuidado y hacerlos más organizados.

Sobre la fecha, es verdad, no me había dado cuenta. Lo modificaré. También miraré el enlace de Pedro.

Saludos.
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: Dimitar Stefanov en 29 de Marzo 2016, 21:39
Visto el código de Pedro.

Debo reconocer que es un código mucho más organizado que el mío y más estilizado. Utiliza los métodos "substing()" de forma adecuada y, de este modo,  ahorra la inclusión de variables innecesarias.

Saludos.
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: bermartinv en 30 de Marzo 2016, 22:31
Hola dimiste,
sobre el ejecricio 1, indicarte dos cosas.
1.Al contestar la pregunta inicial hace lo mismo si le le das a Aceptar o a Cancelar.
2.Cuando tienes que introdicir la palabra, si no llegas a poner la palabra que tu pides, no marca los segundos que han pasado o indicar que no ha adivinado la palabra, el mensaje que sale en la ventana alert es un --> 'Has contestado en: Nan segundos!!!'
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: Dimitar Stefanov en 31 de Marzo 2016, 12:56
Buenas, bermartinv.

Gracias por la observación. Creo que nadie se había dado cuenta de ese fallo.

Con la modificación que hice pienso que ahora contempla esas dos circunstancias.

Pongo el código modificado, a continuación:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

window.onload = function(){

var pregunta = confirm('Sabes cuál es la única palabra (en español) que contiene las 5 vocales"?');

if(pregunta==true){
var primeraToma = Date.now();
}else{}

var pista = ["M","u","r","c","i","e","l","a","g","o"];
var ayuda = ' ';
i = 0;

if(pregunta){
do{
var contestacion = prompt('Pon la respuesta aquí:');
contestacion = contestacion.toLowerCase();
if(contestacion!='murcielago' && i<pista.length-1){
ayuda = ayuda+pista[i];
alert('Respuesta Incorrecta!\nEmpieza por: '+ayuda);
i++;
}else if(contestacion!='murcielago'){
alert('La respuesta es: '+ayuda+pista[i]);
i++;
}
}while(contestacion!='murcielago' && i<pista.length);

var segundaToma = Date.now();

resultado = (segundaToma-primeraToma)/1000;

if(contestacion == "murcielago"){
alert("Has contestado en: "+resultado+" segundos!!!");
if(resultado<10){
alert('Eres un crack!!!');
}else if(resultado>10 && resultado<20){
alert('Eres un poco lento');
}else{
alert('Muy lento');
}
}else{
alert("No has podido contestar correctamente!\nHan pasado: "+resultado+" segundos desde que has empezado");
}
}
}

</script>
</head>
<body>
</body>
</html>

Compruébalo.

Gracias
Título: Re:JavaScript calcular el tiempo transcurrido entre dos clicks del usuario CU01163E
Publicado por: bermartinv en 31 de Marzo 2016, 15:17
Ahora OK!!