@del993788

Как посчитать стоимость аренды по месяцам?

Здравствуйте. Пишу для себя скрипт для аренды номеров в гостинице. Ситуация такая: есть две даты: дата заезда и дата съезда. Допустим 10.06.2016 и 15.06.2016. Выходит, что я проживу в гостинице 5 дней. 10 числа в 12:00 заехал, 15 числа в 12:00 съехал. Всё логично.
Стоимость аренды номера варьируется от сезона/месяца. Так, к примеру, в феврале номер стоит 1000 руб/день, а в августе 4000 руб/день.
Если бронь идёт только в одном месяце, я могу её без проблем посчитать. https://jsfiddle.net/348ybgvc/8/ вот как я считаю. Но, если бронь идёт на несколько месяцев или встаёт на даты перехода одного месяца в другой (31-01), то тут начинаются проблемы.
Допустим в декабре номер стоит 2000 рублей, а в январе 1500. Если я заехал 30.12.2016 а съехал 02.01.2017, то я заплачу за эти 3 дня 5500 рублей.
(12:00 - это двенадцать часов дня)
с 30.12.2016 12:00 по 31.12.2016 12:00 - 2000 рублей
с 31.12.2016 12:00 по 01.01.2017 12:00 - 2000 рублей
с 01.01.2017 12:00 по 02.01.2017 12:00 - 1500 рублей
651113984b4844d180af8b3578871232.jpg
Как мне реализовать вот такой скрипт? который будет считать стоимость бронирования, если присутствуют в датах несколько месяцев?
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
@KFan
Веб-программист
// Начало и конец
var dates = [new Date(2016, 10, 29), new Date(2016, 11, 1)];

var pricesPerMonth = {
	"10": 2000,
	"11": 1500
};

// Расчет цены
var price = 0;
for (var i = dates[0].getTime(); i <= dates[1].getTime(); i += 86400 * 1000) {
	var d = new Date(i);
	var m = d.getMonth();
	
	if (pricesPerMonth[m]) {
		price += pricesPerMonth[m];
	}
}

console.log(pricesPerMonth);
console.log(price);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы