Tengo un lapso de tiempo entre dos épocas (en segundos). Quiero una función que devuelva los tiempos de época (en segundos) de todas las medianoches dentro de ese lapso de tiempo.
En pseudocódigo me gustaría algo como esto:
const epoch_start = 1600000; const epoch_end = 16040000; function getMidnights(start, end){ // do your magic } console.log(getMidnights(epoch_start, epoch_end));Espero que el retorno de esa función se vea así: [1600020, 1600400] (estos son solo valores de ejemplo).
¿Cuál sería la forma más eficiente de hacer esto?
Mis ideas fueron: obtener una lista única de días dentro del rango y devolver su medianoche.
Puede pasar por día redondeando por día:
const epoch_start = 1600000000; const epoch_end = 1600400000; const day = 86400; function getMidnights(start, end){ midnites = []; while (start < end) { midnites.push((start/day + .5|0)*day); start += day; } return midnites; } console.log(getMidnights(epoch_start, epoch_end)) console.log('* check it *') console.log(getMidnights(epoch_start, epoch_end).map(t => new Date(t*1e3)));