Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
Generar intervalo de minutos variable

Necesito generar una cantidad variable de rangos entre un día según la cantidad de minutos para compararlos con una lista de archivos para ver si hay una brecha en los datos.

Por ejemplo, si el intervalo de minutos es 60*12 (medio día), necesitaría generar la siguiente lista:

 ['00:00_12:00','12:00_00:00']

Si el intervalo de minutos es 5:

 ['00:00_00:05', '00:05_00:10',..................., '23:55_00:00']

Estoy tratando de usar la biblioteca de momentos para simplificar la tarea, supongo que usando

 moment(date).add(interval, 'minutes').format('HH:MM');

Pero no puedo encontrar el bucle correcto para obtener el resultado deseado.

Este es mi código actual, pero ni siquiera funciona:

 var interval_1 = 60; var interval_2 = 5; var interval_3 = 60*12; var today = moment.utc(new Date()).startOf('day').toISOString(); console.log(today) from = moment.utc(new Date()).startOf('day').format('HH:MM') var to = '' while (to !== '00:00'){ to = moment(from).add(interval_1, 'minutes').format('HH:MM'); console.log(from, '_', to, '.json') from = to }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que el formateo que debe hacer en cada combinación de horas y minutos es lo suficientemente simple como para que no necesite obtener una biblioteca para ello. Así es como podría hacer esto:

 const formatMinutes = (m) => String (((m - (m % 60)) / 60 % 24)) .padStart (2, '0') + ':' + String (m % 60) .padStart (2, '0') const divideDay = (n) => Array .from ( {length: 24 * 60 / n}, (_, i) => [i * n, (i + 1) * n] ).map (([b, e]) => `${formatMinutes (b)}_${formatMinutes (e)}`) const testCases = [327, 60, 5, 60 * 12] testCases .forEach ( minutes => console .log (`${minutes} minutes: ["${divideDay (minutes) .join('", "')}"]\n`) )
 .as-console-wrapper {max-height: 100% !important; top: 0}

formatMinutes toma una cantidad de minutos y lo formatea en formato hh:mm , rellenando a la izquierda cada componente con 0 si es necesario. La función principal es divideDay , que divide los minutos en matrices [[0, 5], [5, 10], ... [1435, 1440]] y luego asigna estos pares de inicio y fin en una cadena formateada llamando a formatMinutes en cada uno.

Si quiere lidiar con posibles parciales, si por ejemplo pasa 327 como el número de minutos, al capturar el minuto restante en una sección final, puede cambiarlo un poco así:

 const divideDay = (n) => Array .from ( {length: Math .ceil (24 * 60 / n)}, (_, i) => [i * n, Math .min ((i + 1) * n, 24 * 60)] ).map (([b, e]) => `${formatMinutes (b)}_${formatMinutes (e)}`)

y entonces

 divideDay (327) //=> ['00:00_05:27', '05:27_10:54', '10:54_16:21', '16:21_21:48']
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda