Я пытаюсь заставить свой код работать для отдельных входов , например: когда я ввожу 1, он должен возвращать 0 часов 1 минуту вместо 0 часов 1 минуты

#javascript

Вопрос:

Код довольно хорошо работает с множественными числами. например: 150 вывод: 2 часа 30 минут, но когда я добавляю единственное число в часах или минутах, оно все равно выводит: часы и минуты вместо часа и минуты.

 function timeConverter(number) {
  var num = number

  var hours = (num / 60);

  var hrs = Math.floor(hours);
  var minutes = (hours - hrs) * 60;
  var min = Math.round(minutes);
  return  hrs   " hours, "   min   " minutes."
}

console.log(timeConverter(1)
 

Комментарии:

1. Что не работает? Добавьте более подробную информацию

2. Что такое множественное число?

3. может быть 1 минута, 2 минуты

4. я пытаюсь заставить свой код работать для отдельных входов , например: когда я ввожу 1, он должен возвращать 0 часов, 1 минуту вместо 1 минуты.

5. простая проверка состояния не поможет?

Ответ №1:

Современный способ с шаблонным литералом и функцией

также удалено много ошибок в вашем коде, потому что это действительно просто

 function timeConverter(number) {
  
  const min = number % 60;
  const hrs = (number - min) / 60;
  
  const plural = v => v === 1 ? '' : 's';
  
  return `${hrs} hour${plural(hrs)}, ${min} minute${plural(min)}.`;
}

console.log(timeConverter(1));
console.log(timeConverter(2)); 

Ответ №2:

Для этого вы можете использовать ternary оператора.

 function timeConverter(number) {
  var num = number

  var hours = (num / 60);

  var hrs = Math.floor(hours);
  var minutes = (hours - hrs) * 60;
  var min = Math.round(minutes);
  return  hrs   (hrs==1 ? " hour, " : " hours, ")   min   (min==1 ? " minute." : " minutes.")
}

console.log(timeConverter(1));
console.log(timeConverter(60)); 

Комментарии:

1. @НАТАНИЭЛЬ, пожалуйста, проверьте сейчас.

Ответ №3:

Вот один из самых простых способов

 function timeConverter(number) {
  var num = number

  var hours = (num / 60);

  var hrs = Math.floor(hours);
  var minutes = (hours - hrs) * 60;
  var min = Math.round(minutes);
  var hrsUnit = hrs > 1? " hours, " : " hour, ";
  var minsUnit = min > 1 ? " minutes." : " minute.";
  
  return hrs   hrsUnit   min   minsUnit;
}

console.log(timeConverter(10));