Показать сообщение отдельно
  #23 (permalink)  
Старый 27.04.2017, 18:04
Аспирант
Отправить личное сообщение для KEMPZOR Посмотреть профиль Найти все сообщения от KEMPZOR
 
Регистрация: 13.12.2016
Сообщений: 85

Сообщение от Dilettante_Pro Посмотреть сообщение
KEMPZOR,


Откуда у вас такие цифры?

Сумма :<input id="sum" type = "text" value = "232"><br>
<input type="button" value="Считать" onclick = "calc();"><br>
<div id = "result"></div>
<script>
function calc() {
   var summa = +sum.value, period = 6;
//   if(summa < 35 || Math.floor(summa / 5) * 5 != summa) {
//       alert("Сумма должна быть кратной 5, не меньше 35");
//       result.innerHTML = "";
//       return;
//   }
   var tempPay, currentPay, lastPay;
   tempPay = summa / period;
   currentPay = Math.floor(tempPay / 5) * 5;
   if (currentPay < 35) currentPay = 35;
   period = Math.round(summa / currentPay);
   currentPay = currentPay + 5;
   do {
      currentPay = currentPay - 5;
      lastPay = summa - currentPay * period; 
   } while ( lastPay < 35 && lastPay != 0);
   if (currentPay < 35) { currentPay = 30; 
      do {
          currentPay = currentPay + 5;
          period = Math.floor(summa / currentPay);
          lastPay = summa - currentPay * period; 
      } while (lastPay != 0 && lastPay < 35);
   }
   result.innerHTML = "";
   for (var i = 0; i < period; i++) {
   result.innerHTML +=  i + " - " + currentPay + "<br>";
   }
   result.innerHTML += i  + " - " + lastPay + "<br>";
}
</script>
Я его переделал с возможностью выбора через select количества месяцев, пост №19.
<select class="select-month" name="month">
        <option value="2">1</option>
        <option value="3">2</option>
        <option value="4">3</option>
        <option value="5">4</option>
        <option value="6">5</option>
        <option value="7">6</option>
</select>

0 - 160
1 - 160
2 - 160
3 - 160
4 - 160
5 - 160
6 - 40
Это правильно.
Я сделал по своему примеру, у меня так показывает.
1000/7=142.85
Ближайшее 140 * 6 = 840
1000-840 = 160
0 - 140
1 - 140
2 - 140
3 - 140
4 - 140
5 - 140
6 - 160.00
Но вот меньше 244 некорректно.
Ответить с цитированием