Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

175
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!