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

241
Views
Time Convert- convertir minutos en horas

Haga que la función TimeConvert(num) tome el parámetro num que se está pasando y devuelva el número de horas y minutos en que se convierte el parámetro (es decir, si num = 63, la salida debería ser 1:3). Separe el número de horas y minutos con dos puntos. Otro ejemplo si entrada: 126 luego salida: 2:06. Esto es lo que hice y no entiendo por qué está mal. Para una entrada de 126, me da una salida de 11:06.

 function TimeConvert(num) { if(num<60 && num>10){ return 0+":"+num } if(num<10){ return 0+":"+0+num } let object={ 12:720, 11:660, 10:600, 9:540, 8:480, 7:420, 6:360, 5:300, 4:240, 3:180, 2:120, 1:60 } let time="" for (let key in object){ while(num>=object[key]){ time += key num-= object[key] } } return time+":"+num }
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Como se señaló en los comentarios, hay muchas formas de reducir los minutos a horas y minutos. Sin embargo, para abordar su pregunta de por qué su enfoque está fallando:

Las claves de objeto se tratan como cadenas, no como números. Además, ha declarado el tiempo como una cadena.

Para su enfoque de trabajo, debe realizar AMBOS cambios:

let time="" -> let time = 0

y

time += key -> time += parseInt(key)

Fragmento de trabajo:

 console.log(TimeConvert(126)); function TimeConvert(num) { if(num<60 && num>10){ return 0+":"+num } if(num<10){ return 0+":"+0+num } let object={ 12:720, 11:660, 10:600, 9:540, 8:480, 7:420, 6:360, 5:300, 4:240, 3:180, 2:120, 1:60 } let time=0; for (let key in object){ while(num>=object[key]){ time += parseInt(key) num-= object[key] } } if (num<10) { num = "0"+num;} // add leading 0 and coerce to string if num <10; return time+":"+num }

about 4 years ago · Juan Pablo Isaza Report

0

¿Por qué no usar este algoritmo?

  1. Obtenga la cantidad de veces que 60 minutos está en el argumento numérico
  2. Obtener los minutos restantes
  3. Concatenar ambos (con relleno para los minutos)
  4. devolver la respuesta
 const getHoursAndMinsString = (num) => { if (num <= 0) { return `0:00` } const hours = Math.floor(num / 60) const mins = num % 60 return `${hours}:${mins.toString().padStart(2, "0")}` }
about 4 years ago · Juan Pablo Isaza Report

0

Su búsqueda de object solo codifica n => n * 60, pero solo para un subconjunto de valores posibles, por lo que limita arbitrariamente el rango de valores en los que puede operar su función.

Eliminar eso y usar floor y % para calcular las horas y los minutos respectivamente reduce el código a:

 function TimeConvert(num) { let time = Math.floor(num / 60); num = num % 60; if (num < 10) { num = "0" + num; } // add leading 0 and coerce to string if num <10; return time + ":" + num; }

Estos cálculos también se pueden hacer en línea si lo prefiere, lo que reduce aún más el código:

 function TimeConvert(num) { return Math.floor(num / 60) + ":" + ((num % 60) < 10 ? "0" : "") + (num % 60); }

solo tenga cuidado con los valores negativos, o algo superior a 1440, que se desbordaría pasadas las 24 horas y es posible que desee comenzar a mostrarse con días.

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!