-
-
Save parzibyte/a0405f1d9ff6478a32025ebd4d225015 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Hacer una función en JavaScript que reciba un número de minutos | |
* (puede ser positivo o negativo) y devuelva el día de la semana y la hora | |
* (en formato de 24 horas) que sería si al domingo a la medianoche se le sumara | |
* o restara ese número de minutos. | |
* | |
* @author parzibyte | |
*/ | |
const diaYHora = numeroDeMinutos => { | |
// Fecha de un domingo a medianoche. Yo sé que el 24 de marzo del 2019 fue domingo | |
// Nota: los meses se cuentan desde 0 | |
let fecha = new Date(2019, 2, 24, 0, 0, 0, 0); | |
// Milisegundos equivalentes, que puede ser negativo o positivo dependiendo de numeroDeMinutos | |
let milisegundosEquivalentes = numeroDeMinutos * 60000; | |
// Sumarle (o restarle) los milisegundos. No olvides la ley de signos, ya que: | |
// fecha + (-numero) es equivalente a fecha - numero. El amigo de mi enemigo es mi enemigo | |
fecha.setTime(fecha.getTime() + milisegundosEquivalentes); | |
// Formatearíamos pero hay errores con el español así que lo hacemos manual :/ | |
let dia = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"][fecha.getDay()]; | |
// sacar y agregar 0 si es necesario | |
let hora = fecha.getHours().toString(); | |
if (hora.length <= 1) hora = "0" + hora; | |
let minutos = fecha.getMinutes().toString(); | |
if (minutos.length <= 1) minutos = "0" + minutos; | |
// Concatenamos con plantillas de cadena | |
//https://parzibyte.me/blog/2018/03/26/backticks-javascript-plantillas-cadenas/ | |
return `${dia} ${hora}:${minutos}`; | |
}; | |
// Hora de probar | |
const minutosParaProbar = [ | |
3, | |
-3, | |
0, | |
-59, | |
-60, | |
50, | |
61, | |
-60, | |
-75 | |
]; | |
minutosParaProbar.forEach(numeroDeMinutos => { | |
console.log(`Probando con ${numeroDeMinutos}. Resultado: ${diaYHora(numeroDeMinutos)}`); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment