西西河

主题:【原创】一个计算退休金(401k)的脚本程序。欢迎测试 -- poorfat

共:💬3
全看分页树展 · 主题
家园 【原创】一个计算退休金(401k)的脚本程序。欢迎测试

我一直想知道每月应该存多少钱进401k将来才够用,于是就写了这么一个jscript程序。网上类似功能的401k计算器很多,但是都太复杂,我这个笨人一看就晕了。自己写了个简单的,但又怕遗漏了什么,所以贴上来共各位高手批评指正。谢先。

使用说明:

1。输入参数:

numYearsTillRetire = 30; // 过多少年以后退休

numYearsToLiveAfterRetire =20; // 退休后在打算活几年(想想都觉得心寒哪)

moneyAddedTo401KYearly =7000; // 平均每年存多少钱到401k账号里

appreciationRate_compound = 0.1; // 401k 账号的年增值复利

inflationRate_compound = 0.03; // 退休后的生活费通胀复利

currentAverageYealyLivingExpense = 30000; // 当前每年生活费开销

2。运行方法

把程序贴到记事本(notepad.exe)里,先保存好(如 my401k.js),再将此程序打开。

上述参数都已经列在了程序的头部。更改并填入您自己认为合适的数值

打开cmd.exe窗口,运行“cscript my401k.js”。

显示结果与下列类似:

Microsoft (R) Windows Script Host Version 5.6

Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Total 401k savings till retirement =[1266604]

first retire year living cost= [72818]

Total Retirement living cost= [2088161]

在这个例子里,退休金缺口是约八万多美元。还得继续努力挣钱啊。

3。程序如下:

var numYearsTillRetire = 30;

var numYearsToLiveAfterRetire =20;

var moneyAddedTo401KYearly =7000;

var appreciationRate_compound = 0.1; // applied to 401k account

var inflationRate_compound = 0.03; // applied to living expense increase after retirement

var currentAverageYealyLivingExpense = 30000;

main();

function main()

{

var save =Total401kSavingsTillRetirement(moneyAddedTo401KYearly, numYearsTillRetire, appreciationRate_compound);

WScript.Echo("Total 401k savings till retirement =["+ Math.round(save) +"]");

var rc=TotalRetirementLivingExpenses(currentAverageYealyLivingExpense, numYearsTillRetire, numYearsToLiveAfterRetire, inflationRate_compound);

WScript.Echo("Total Retirement living cost= ["+ Math.round(rc) +"]");

}

// end of main()

function Total401kSavingsTillRetirement

(

annualAddition,

yearsBeforeRetire,

appreciationRate

)

/* this calculates the total 401k savings upto retirement

the formula is:

anual addition to 401k account * summation (1+appreciation rate) ^ years,

where years = 1 to yearsBeforeRetire

*/

{

var p = PoweredSummation((1 + appreciationRate), yearsBeforeRetire);

return annualAddition * (p);

}

// end of Total401kSavingsTillRetirement()

function TotalRetirementLivingExpenses

(

currentYearlyExpense,

yearsBeforeRetire,

yearsAfterRetire,

inflationRate

)

/* this calculates the total living expenses after retirement

the formula is:

first retire year expense * summation (1+inflationRate) ^ years,

where years = 0 to yearsAfterRetire

*/

{

// compute the anticipated first retire year expense

var firstRetireYearExpense = currentYearlyExpense;

for (i = 1; i<=yearsBeforeRetire; i++)

{

firstRetireYearExpense = firstRetireYearExpense * (1+inflationRate);

}

WScript.Echo("first retire year living cost= ["+Math.round(firstRetireYearExpense) +"]");

var ps =(1+PoweredSummation((1+inflationRate), yearsAfterRetire));

return firstRetireYearExpense * ps;

}

// end of TotalRetirementLivingExpenses()

function PoweredSummation(base, power)

/*

this computes the summation of base^i, where i is from

1 to power, ie, base+base^2+base^3+...+base^power

*/

{

if (power<=0) {return 1;}

var sum =0;

for (i=1;i<=power;i++)

{

sum = sum + PowerbyInt(base, i);

}

return sum;

}

// end of PoweredSummation()

function PowerbyInt(base, power)

// returns the base to the power of "power"

// power must be >=0

{

if (power <=0) {return 1;}

var ret =1;

for (j=1;j<=power; j++)

{

ret = ret * base;

}

return ret;

}

// end of PowerbyInt();

全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河