Показать сообщение отдельно
  #2 (permalink)  
Старый 30.10.2013, 14:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Spamol,
мысли вслух ... делим диапазон в 0 часов...а в течении одних суток можно так
function cost(run, end)
{
var time = {0:6,3:0,15:2.5,18:3.5,21:5},
sum = 0, min = 0;
for (var i=0; i< 24; i++)  {
  if(i in time) min = time[i];
  if(i >= run[0])  {sum += (60-run[1])*min ; run[1]=0};
  if(i+1 > end[0])  {sum -= (60-end[1])*min; break};
}
return sum
}

alert(cost([11,3],[20,45]) )

Последний раз редактировалось рони, 01.11.2013 в 11:37.
Ответить с цитированием