DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Advent.js🎅🏼| #5: Contando los días para los regalos

Contando los días para los regalos

Con la emoción, ya estamos empezando a contar los días del calendario hasta el 25 de diciembre 📆.

Para ayudar a esto, vamos a crear una función que pasándole una instancia de Date nos diga el número de días que faltan.

Veamos unos ejemplos:

const date1 = new Date('Dec 1, 2021')
daysToXmas(date1) // 24
const date2 = new Date('Dec 24, 2021 00:00:01')
daysToXmas(date2) // 1
const date3 = new Date('Dec 24, 2021 23:59:59')
daysToXmas(date3) // 1
const date4 = new Date("December 20, 2021 03:24:00")
daysToXmas(date4) // 5
Enter fullscreen mode Exit fullscreen mode

El resultado tiene que ser un número entero y, como ves, aunque falte un segundo hasta el siguiente día, se entiende que todavía falta un día.

¡Pero ojo! También hay que indicar si la fecha es del mismo día (devolveríamos 0) o si es una fecha futura (devolveríamos el número de días en negativo -):

const date = new Date('Dec 25, 2021)
daysToXmas(date) // 0
const date1 = new Date('Dec 26, 2021')
daysToXmas(date1) // -1
const date2 = new Date('Dec 31, 2021')
daysToXmas(date2) // -6
const date3 = new Date('Jan 1, 2022 00:00:01')
daysToXmas(date3) // -7
const date4 = new Date('Jan 1, 2022 23:59:59')
daysToXmas(date4) // -7
Enter fullscreen mode Exit fullscreen mode

Por cierto, la fecha de referencia para saber si es 25 de diciembre es Dec 25, 2021.

Completa el reto!


Mi solución:


Puedes seguir a @midudev y estar pendiente de los retos de Advent.js

Discussion (1)

Collapse
cesar__dlr profile image
Cesar Del rio

Yo use Date.parse() -> Aqui esta mi solución:

export default function daysToXmas(date) {
let xmas = new Date('Dec 25, 2021')
let xmasParsed = Date.parse(xmas)

let parsedD = Date.parse(date)

if (parsedD > xmasParsed || parsedD < xmasParsed) {
let rMili = xmasParsed - parsedD
let r = Math.ceil(rMili / 86400000)
return r
}
else if (parsedD == xmasParsed) {
return 0
}
}