Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每月降低年薪的算法_Javascript_Function - Fatal编程技术网

Javascript 每月降低年薪的算法

Javascript 每月降低年薪的算法,javascript,function,Javascript,Function,我试着建立一个每月自动降价的系统,所以在12月你支付价格的1/12,在2月你支付11/12,以此类推 但我似乎无法解决问题,所以我来这里寻求帮助:) 函数calcTotalPrice(){ var month=新数组(); 月[0]=“一月”; 月[1]=“2月”; 月[2]=“三月”; 月[3]=“4月”; 月[4]=“五月”; 月[5]=“6月”; 月[6]=“7月”; 月[7]=“8月”; 月[8]=“9月”; 月[9]=“10月”; 月[10]=“11月”; 月[11]=“12月”; v

我试着建立一个每月自动降价的系统,所以在12月你支付价格的1/12,在2月你支付11/12,以此类推

但我似乎无法解决问题,所以我来这里寻求帮助:)

函数calcTotalPrice(){
var month=新数组();
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
var d=新日期();
var n=月[d.getMonth()];
//document.getElementById(“demo”).innerHTML=n;
var yearPrijs=12.5;
var成员资格=新数组();
如果(月[0]){
会员资格[0]=年价;
}
否则{
对于(i=0;i
OK@jssse,我想我得到了所需的东西

让startDate=新日期();
设startPrice=12.5;
//复制日期/价格以便在循环中使用
设newDate=startDate;
让newPrice=startPrice;
让每月=[];
让totalPrice=0;
设月份=新数组();
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“6月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“9月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
//取消注释:
//从这个月开始,如果是一月,或者如果不是明年一月
//因此,2020年9月将是2021年1月
//让startMonth=newDate.getMonth();
//如果(开始月!=0){
//newDate=新日期(newDate.setMonth(12));
//}
//或:
//从今年一月开始,不管我们在哪个月
//因此,对于2020年9月,这将是2020年1月
newDate=新日期(newDate.setMonth(0));
for(设i=0;i<12;i++){
newPrice=数学四舍五入(newPrice*100)/100;
monthly.push({“Month”:Month[newDate.getMonth()],“Cost”:newPrice});
总价格+=新价格;
//创建下个月的新日期/价格
//新价格=新价格-(新价格*(1/12));
newPrice=newPrice-(startPrice/12);
设m=newDate.getMonth()+1;
newDate=新日期(newDate.setMonth(m));
}
控制台.表格(每月);

控制台日志(总价)
你的意思是
12.5-(new Date().getMonth()*0.9167)
yearPrice*0.9167
应该是
yearPrice=yearPrice*0.9167
,如果(month[0])总是正确的话……一般建议:使用调试器并集中精力于每个步骤的预期结果。这样,您应该可以很快看到差异。如果你熟悉编程语言,在没有调试器的情况下也可以工作。@Liam我能做些什么来改进它,我自己并不擅长Javascript。嘿,谢谢你的时间,但这不是我想要的。让我更好地解释一下,每年从一月份开始,你有一个价格,今年是12.50,``价格=12,50一月=价格二月=价格/12*11三月=价格/12*10等等```这不是我代码中注释掉的部分吗?开始“//或…”的那一行吗?取消对该行的注释,并注释掉上面以“newPrice=”开头的行,该行每月将价格降低原价格的1/12。目前的代码将为您提供12.50、11.46、10.51、9.63、8.83、8.09、7.42、6.80、6.23、5.71、5.23和4.70。切换代码行,您将得到:12.50、11.46、10.42、9.38、8.34、7.30、6.26、5.22、4.18、3.14、2.10和1.06。如果这两个都不正确,那么我不知道你的公式是什么!您可能会发现,首先在电子表格中构建某些内容更容易。将初始值放在A1中,然后在B1中添加一个公式,根据A1值计算下一个月的值。把它抄下来,完成一年,然后检查结果。如果结果是您需要的,那么在代码中包含B1中的公式,说明这是您想要转换为javascript代码的公式。通过这种方式,只要我们了解电子表格公式,我们就可以看到您想要实现的目标。我欣赏这些提示,现在只剩下一件事要做,那就是,使完整价格仅在1月份,而不是我们所在的月份。我想我必须将这个月[newDate.getMonth()改为数组(月)或者我必须将新日期更改为1月?定价是否总是从1月开始?因此,对于本月,2020年9月,您希望从2021年1月开始,但如果它在2021年1月运行,则保留该日期?或者,您希望在本月返回到2020年1月?
function calcTotalPrice(){
    var month = new Array();
        month[0] = "January";
        month[1] = "February";
        month[2] = "March";
        month[3] = "April";
        month[4] = "May";
        month[5] = "June";
        month[6] = "July";
        month[7] = "August";
        month[8] = "September";
        month[9] = "October";
        month[10] = "November";
        month[11] = "December";

    var d = new Date();
    var n = month[d.getMonth()];
    // document.getElementById("demo").innerHTML = n;
    var yearPrijs = 12.5;
    var membership = new Array();
    if (month[0]){
        membership[0] = yearPrice;
    }
    else{
        for(i = 0;i < month.length; i++){
            yearPrice = yearPrice*0.9167;
            membership[i] = yearPrice;
        }
    }
}