@Sol-Mayers

Как поменять месяцы на годы в результате подсчёта?

Добрый день. Пишу программу, которая выполняет одну простую функцию - показывает сколько времени нужно будет копить деньги, что-бы накопить определённую сумму. Хочу подправить один момент.

Сейчас результат программы выдаётся в следующем виде (например) - "Уйдёт времени: 28 месяцев". А мне нужно, что-бы результат был в таком виде - "Уйдёт 2 года 4 месяца".

Вопрос: как сделать так, что-бы начиная с 12 месяцев в дату начал добавляться год?

<div class="my-wallet-wrap">
  <form action="#" method="post" class="form-wallet">
    <label class="income-wrap">
      <span class="income">Доход в месяц</span>
      <input id="must-write" type="number" step="100" min="1000" name="income" placeholder="Введите сумму" class="income-field" required>
    </label>
    <label class="expense-wrap">
      <span class="expense">Расход в месяц</span>
      <input id="must-write" type="number" step="100" name="expense" placeholder="Введите сумму" class="expense-field" required>
    </label>
    <label class="wishful-amount-wrap">
      <span class="wishful-amount">Желаемая сумма</span>
      <input id="must-write" type="number" step="100" name="amount" placeholder="Введите сумму" class="wishful-amount-field" required>
    </label>
    <div class="buttons-wrap">
    <button type="button" class="calculation-button">Посчитать</button>
    <button type="reset" class="reset-button">Очистить</button>
    </div>
  </form>
  <div class="how-long">
    <h2 class="how-long-title">Уйдёт времени:</h2>
    <p class="how-long-answer"></p>
  </div>
</div>


'use strict';

let income = document.querySelector('.income-field');
let expense = document.querySelector('.expense-field');
let amount = document.querySelector('.wishful-amount-field');
let result = document.querySelector('.how-long-answer');
let buttonCalc = document.querySelector('.calculation-button');
let buttonReset = document.querySelector('.reset-button');
let buttonDisabled = document.querySelector('.disabled-button');

let getDisable = function () {
  buttonCalc.disabled = true;
  buttonCalc.classList.add('disabled-button');
}
getDisable();

let getEnable = function () {
  buttonCalc.disabled = false;
  buttonCalc.classList.remove('disabled-button');
}

income.addEventListener('input', function (event) {
    if (Number(income.value) <= Number(expense.value) || Number(amount.value) < (Number(income.value) - Number(expense.value)) || Number(expense.value) >= Number(income.value) || income.value == '' || expense.value == '' || amount.value == '') {
     getDisable();
    }  else {
     getEnable();
    }
  });

expense.addEventListener('input', function (event) {
    if (Number(expense.value) >= Number(income.value) || Number(income.value) <= Number(expense.value) || Number(amount.value) < (Number(income.value) - Number(expense.value)) || expense.value == '' || income.value == '' || amount.value == '') {
     getDisable();
    }  else {
     getEnable();
    }
  });

amount.addEventListener('input', function (event) {
   if (Number(amount.value) < (Number(income.value) - Number(expense.value)) || Number(income.value) <= Number(expense.value) || Number(expense.value) >= Number(income.value) || amount.value == '' || expense.value == '' || income.value == '') {
    getDisable();
   }  else {
    getEnable();
  }
});

let getResult = function () {
  let balance = income.value - expense.value;
  let resultFirst = amount.value / balance;
  return resultFirst;
}

buttonCalc.addEventListener('click', function (event) {
  const ending = [' Месяц',' Месяцев', ' Месяца'];
  let sampleNumber = Math.round(getResult()),
  lastDigit = sampleNumber % 10;
    if (lastDigit === 1) {
      result.textContent = Math.round(getResult()) + ending[0];
    } else if (lastDigit === 2 || lastDigit === 3 || lastDigit === 4) {
      result.textContent = Math.round(getResult()) + ending[2];
    } else {
      result.textContent = Math.round(getResult()) + ending[1];
    }
});

buttonReset.addEventListener('click', function (event) {
  result.textContent = '';
});
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
const totalMonths = 28;
const years = Math.floor(totalMonths / 12);
const months = totalMonths % 12;

console.log(`Уйдёт времени: ${years} лет ${months} месяцев`) // Уйдёт времени: 2 лет 4 месяцев
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы