Contexto: Estoy almacenando el día de la semana en que el usuario realizó la última compra en mi sitio web. La función getDay() devuelve un número correspondiente al día de esa semana, siendo 0 el domingo y 6 el sábado. Por lo que una compra realizada hoy, 14/07/2022, almacenará el número 4 , jueves.
Problema: Al saber la fecha y el día de la semana en que el usuario realizó la compra, quiero saber, en base a la fecha de hoy, ¡cuántos días tomará para llegar al día de la semana en que el usuario realizó esa compra!
Aclarando: Ejemplo - Si un usuario realizó una compra el día de la semana 0 , domingo, con base en la fecha de hoy, 14/07/2022, entonces el número 4 , ¿cuántos días tardará en llegar al día 0 ? Sumar número por número, sabemos que tomará 3 días, pero ¿cómo puedo calcular dinámicamente?
Más ejemplos: encuentre cuántos días tomará llegar al día 3 , siendo hoy el día 4 . Así que tenemos que pasar por el día 5,6,0,1,2, entonces 5
Calcula cuántos días tardará en llegar el día 2 , siendo hoy el día 6 . Así que tenemos que pasar por el día 0, 1 y 2, por lo que 3
Podría tomar un delta de hasta y desde el día más siete y tomar el resto por siete.
const getDays = (from, to) => (7 + to - from) % 7; console.log(getDays(0, 0)); // 0 console.log(getDays(6, 0)); // 1 console.log(getDays(4, 3)); // 5 6 0 1 2 3 -> 6 console.log(getDays(6, 2)); // 0 1 2 -> 3 .as-console-wrapper { max-height: 100% !important; top: 0; }