基本的に、このスクリプトを修正する必要があります。修正しようとしましたが、-1日が返されます。ここで新しいスクリプトを見ることができます-
function calculatePrice(startDate, endDate, bike) {
if(cars != "no") {
console.log(startDate);
console.log(endDate);
var currentSeason = getSeason(startDate);
var totalPrice = 0;
var daysInSeason = 0;
var currentDate = startDate;
var tierss = "";
var now = startDate;
var daye = 0;
while(now <= endDate) {
var season = getSeason(currentDate);
daye++;
now.setDate(now.getDate() + 1);
}
if(daye <= 3) tierss = "t1";
else if (daye <= 8) tierss = "t2";
else tierss = "t3"
while (currentDate <= endDate) {
var season = getSeason(currentDate);
if (season != currentSeason) {
totalPrice += getPrice(bike, currentSeason, daysInSeason, tierss);
currentSeason = season;
daysInSeason = 0;
}
daysInSeason++;
console.log('days in season - ' + daysInSeason);
currentDate.setDate(currentDate.getDate() + 1);
}
totalPrice += getPrice(bike, currentSeason, daysInSeason, tierss);
return totalPrice;
}
else {
totalPrice = 0;
return totalPrice;
}
}
これは-1を返し、これはすべてを正常に返すスクリプトです-
function calculatePrice(startDate, endDate, bike) {
if(cars != "no") {
console.log(startDate);
console.log(endDate);
var currentSeason = getSeason(startDate);
var totalPrice = 0;
var daysInSeason = 0;
var currentDate = startDate;
while (currentDate <= endDate) {
var season = getSeason(currentDate);
if (season != currentSeason) {
totalPrice += getPrice(bike, currentSeason, daysInSeason);
currentSeason = season;
daysInSeason = 0;
}
daysInSeason++;
currentDate.setDate(currentDate.getDate() + 1);
}
totalPrice += getPrice(bike, currentSeason, daysInSeason);
return totalPrice;
}
else {
totalPrice = 0;
return totalPrice;
}
}
スクリプトを編集する必要があるのはなぜですか?単純に、現在のシーズンの日数を返すためですが、totalPriceの現在のシーズンの合計日数と日数を含める必要があります。または、上記のように、getpriceにティアを含める必要がある可能性もあります。どちらも機能するはずです。
助けを聞くことを願っています:)!