103 lines
9.1 KiB
HTML
103 lines
9.1 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
|
||
<meta name="format-detection" content="telephone=no">
|
||
<title>教育金每月存多少</title>
|
||
<!-- 孕期计算器 · 教育金每月存多少(2026-11-06 用户从 20 个备选里选了 5 个,本页是其中之一)。
|
||
按月复利:目标金额按「学费上涨」折到用钱那年,减去已存的钱、育儿补贴(每月 300 元存到 3 岁,可选)的终值,剩下的按每月定投年金反推每月要存多少。
|
||
从今天(宝宝没出生也从今天)开始存,到宝宝满 18 / 22 岁那天为止。收益率是假设值,只帮用户估量级,页面写明不构成投资建议,不推荐具体产品。
|
||
共用 ../_shared/calc.css + calc.js;自成一页,不引 app.js。 -->
|
||
<link rel="stylesheet" href="../_shared/calc.css?v=26110464">
|
||
<link rel="stylesheet" href="../_shared/wizard.css?v=26110464">
|
||
<style>#res .row b{font-size:17px;white-space:nowrap}:root{--c:#2E9C8A;--c2:#6CCBB8;--cbg:#E6F7F3}</style>
|
||
</head>
|
||
<body>
|
||
<div id="scroll">
|
||
<header class="bar" id="bar">
|
||
<button class="back" id="back" aria-label="返回"><svg viewBox="0 0 24 24"><path d="M15 5l-7 7 7 7"/></svg></button>
|
||
<span class="t">孕期计算器</span>
|
||
</header>
|
||
<section class="hd"><p>孕期计算器</p><h1>教育金每月存多少</h1><span>从现在开始存,到宝宝上大学能攒够吗</span></section>
|
||
<section class="calc">
|
||
<div class="res" id="res"><div class="empty">填好马上算出来</div></div>
|
||
<div class="fld"><label class="lb" for="cD">宝宝生日<small>没出生就填预产期</small></label><input class="in num" type="date" id="cD"></div>
|
||
<div class="fld"><span class="lb">这笔钱什么时候用</span><div class="seg s2" id="cAge"><button type="button" data-v="18">18 岁上大学</button><button type="button" data-v="22">22 岁读研究生</button></div></div>
|
||
<div class="fld"><span class="lb">想攒多少(按现在的钱算)</span><div class="seg s2" id="cGoal"><button type="button" data-v="10">10 万</button><button type="button" data-v="30">30 万</button><button type="button" data-v="50">50 万</button><button type="button" data-v="100">100 万</button></div>
|
||
<span class="hint">大致参考:公办本科 4 年学费加生活费约 10 万;读研或中外合办约 30 万;出国读本科约 100 万起</span></div>
|
||
<div class="fld"><span class="lb">要不要算上学费上涨</span><div class="seg" id="cInf"><button type="button" data-v="0">不算</button><button type="button" data-v="0.02">每年涨 2%</button><button type="button" data-v="0.03">每年涨 3%</button></div>
|
||
<span class="hint">学费和生活费每年都在涨,算上更稳妥</span></div>
|
||
<div class="fld" data-opt><label class="lb" for="cHave">已经给宝宝存了多少<small>选填</small></label><div class="inw"><input class="in num" type="number" inputmode="decimal" id="cHave" placeholder="比如 2"><em>万元</em></div></div>
|
||
<div class="fld"><span class="lb">打算怎么存</span><div class="seg" id="cR"><button type="button" data-v="0.015">稳稳存</button><button type="button" data-v="0.025">稳中求进</button><button type="button" data-v="0.035">多一点收益</button></div>
|
||
<span class="hint">按年收益约 1.5%(存款、国债)、2.5%(稳健理财等)、3.5%(波动更大)估算,只是假设,不是承诺</span></div>
|
||
<div class="fld"><span class="lb">育儿补贴也存进去吗</span><div class="seg s2" id="cBt"><button type="button" data-v="1">存,每年 3600 元到 3 岁</button><button type="button" data-v="0">不存</button></div></div>
|
||
</section>
|
||
|
||
<section class="sec">
|
||
<h2>不同存法比一比</h2>
|
||
<p class="lead" id="lead"></p>
|
||
<table class="tbl" id="tbl"><thead><tr><th>存法</th><th>每月存</th><th>一共存入</th><th>到时候有</th></tr></thead><tbody></tbody></table>
|
||
</section>
|
||
|
||
<div class="tip"><b>几个小建议:</b>早存比多存管用,时间越长复利越明显;教育金要专款专用,选本金稳的方式,别追高收益;每年宝宝生日看一眼进度,收入涨了就加一点。</div>
|
||
<p class="foot">按假设收益估算,仅供参考,不构成投资建议。</p>
|
||
</div>
|
||
<script src="../_shared/calc.js?v=26110464"></script>
|
||
<script>
|
||
(function () {
|
||
'use strict';
|
||
var C = window.CK, $ = C.$, DAY = C.DAY;
|
||
C.shell();
|
||
var st = C.store('mmbox.calc.jiaoyujin', { d: '', age: '', goal: '', inf: '', have: '', r: '', bt: '' });
|
||
if (!st.d) { var sd = C.savedDue(); if (!isNaN(sd)) st.d = C.fmt(sd); }
|
||
['Age', 'Goal', 'Inf', 'R', 'Bt'].forEach(function (k) { C.seg($('#c' + k), st, k.toLowerCase(), paint); });
|
||
[['#cD', 'd'], ['#cHave', 'have']].forEach(function (p) { var e = $(p[0]); e.value = st[p[1]]; e.addEventListener('input', function () { st[p[1]] = e.value; paint(); }); });
|
||
var RN = { 0.015: '稳稳存', 0.025: '稳中求进', 0.035: '多一点收益' };
|
||
/* r 年收益:返回 { pmt 每月要存, n 月数, put 一共存入, fv 到时候总额 } */
|
||
function plan(r, n, target, have, bt, sub) {
|
||
var i = r / 12, g = Math.pow(1 + i, n);
|
||
var fvHave = have * g, fvBt = 0;
|
||
for (var k = 0; k < sub; k++) fvBt += 300 * Math.pow(1 + i, n - k - 1);
|
||
if (!bt) fvBt = 0;
|
||
var need = target - fvHave - fvBt, ann = i ? (g - 1) / i : n;
|
||
var pmt = Math.max(0, need / ann);
|
||
return { pmt: pmt, put: pmt * n + have + (bt ? 300 * sub : 0), fv: pmt * ann + fvHave + fvBt };
|
||
}
|
||
function paint() {
|
||
st.save();
|
||
var R = $('#res'), tb = $('#tbl tbody'), b = C.parse(st.d);
|
||
if (isNaN(b) || st.age === '' || st.goal === '' || st.inf === '' || st.r === '' || st.bt === '') { R.innerHTML = '<div class="empty">填好马上算出来</div>'; tb.innerHTML = ''; $('#lead').textContent = ''; return; }
|
||
var now = C.today(), end = C.addMonths(b, 12 * st.age);
|
||
var n = Math.round((end - now) / DAY / 30.44);
|
||
if (n < 12) { R.innerHTML = '<div class="empty">离用钱不到 1 年了,检查一下生日填对了没有</div>'; tb.innerHTML = ''; return; }
|
||
var yrs = n / 12, target = st.goal * 1e4 * Math.pow(1 + st.inf, yrs), have = (+st.have || 0) * 1e4;
|
||
/* 育儿补贴:宝宝 3 岁前每月按 300 元存入(没出生的从出生那月开始),存进来的月数 */
|
||
var sub = Math.max(0, Math.min(36, Math.round((C.addMonths(b, 36) - Math.max(now, b)) / DAY / 30.44)));
|
||
var p = plan(st.r, n, target, have, st.bt, sub), late = n <= 48 ? null : (function () { /* 晚 3 年开始:已存的钱和这 3 年的育儿补贴先放着生息,之后再按月存 */
|
||
var i = st.r / 12, h = have * Math.pow(1 + i, 36);
|
||
if (st.bt) for (var k = 0; k < Math.min(sub, 36); k++) h += 300 * Math.pow(1 + i, 36 - k - 1);
|
||
return plan(st.r, n - 36, target, h, 0, 0);
|
||
})();
|
||
R.innerHTML = '<small>到宝宝 ' + st.age + ' 岁(' + new Date(end).getUTCFullYear() + ' 年)攒够 ' + st.goal + ' 万' + (st.inf ? '(按学费上涨折算约 ' + C.money(target) + (/万$/.test(C.money(target)) ? '' : ' 元') + ')' : '') + ',每月要存</small><span class="big num">' + (p.pmt ? C.money(p.pmt) : '0') + '<u>元</u></span>' +
|
||
'<div class="row"><div><small>一共存</small><b class="num">' + Math.round(n / 12) + ' 年</b></div><div><small>存入本金</small><b class="num">' + C.money(p.put) + '</b></div><div><small>收益约</small><b class="num">' + C.money(Math.max(0, p.fv - p.put)) + '</b></div></div>' +
|
||
'<span class="note">' + (p.pmt && n > 48 ? '晚 3 年再开始,每月要存 ' + C.money(late.pmt) + ' 元,多 ' + C.money(late.pmt - p.pmt) + ' 元;早存更轻松。' : p.pmt ? '离用钱不远了,早点开始存。' : '已存的钱' + (st.bt ? '加上育儿补贴' : '') + '按这个收益已经够了,不用再每月存。') + '按假设收益估算,不构成投资建议。</span>';
|
||
$('#lead').textContent = '同样攒 ' + st.goal + ' 万' + (st.inf ? '(含学费上涨)' : '') + ',收益不同每月要存多少';
|
||
tb.innerHTML = [0.015, 0.025, 0.035].map(function (r) {
|
||
var q = plan(r, n, target, have, st.bt, sub);
|
||
return '<tr' + (r === st.r ? ' class="on"' : '') + '><td><b>' + RN[r] + '</b><br><small>年化 ' + (r * 100).toFixed(1) + '%</small></td><td class="num">' + C.money(q.pmt) + ' 元</td><td class="num">' + C.money(q.put) + '</td><td class="num">' + C.money(q.fv) + '</td></tr>';
|
||
}).join('');
|
||
}
|
||
paint();
|
||
})();
|
||
</script>
|
||
<script src="../_shared/brand.js?v=26110203"></script>
|
||
<script src="../../js/share-card.js?v=26110464"></script>
|
||
<script>window.mbShare('../../assets/share/t/jiaoyujin-js.jpg', '教育金每月存多少:从现在开始存,上大学能攒够吗'); /* 11-06 微信转发图 */</script>
|
||
<script src="../_shared/wizard.js?v=26110464"></script>
|
||
<script>CKW.init({ root: '.calc', res: '#res', after: '#scroll > section.calc ~ *' });</script>
|
||
<script src="../../js/last-sub.js?v=26110703"></script> <!-- 11-07 小程序刷新回到这一页(见 js/last-sub.js) -->
|
||
<script src="../../js/pv.js?v=26110652"></script> <!-- 11-07 页面访问记录(推送效果看板,见 js/pv.js) -->
|
||
</body>
|
||
</html>
|