目標資産達成までの期間シミュレーション
プログラムはこちら
ChatGPT
初期投資額、毎月の積立額、年利回り、目標資産額を入力してボタンを押したら達成期間まで何ヶ月かと、何年何月に達成するかを返してくれるhtml+javascriptフォームを作成してください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>投資達成期間計算(万円)</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.container {
max-width: 400px;
margin: 0 auto;
}
label, input {
display: block;
margin-bottom: 10px;
}
button {
margin-top: 20px;
padding: 10px;
background-color: #4CAF50;
color: white;
border: none;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
.result {
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<h2>投資達成期間計算ツール(万円)</h2>
<label for="initialInvestment">初期投資額(万円):</label>
<input type="number" id="initialInvestment" placeholder="初期投資額" required>
<label for="monthlyInvestment">毎月の積立額(万円):</label>
<input type="number" id="monthlyInvestment" placeholder="毎月の積立額" required>
<label for="annualRate">年利回り(%):</label>
<input type="number" id="annualRate" placeholder="年利回り(%)" required>
<label for="targetAmount">目標資産額(万円):</label>
<input type="number" id="targetAmount" placeholder="目標資産額" required>
<button onclick="calculateInvestment()">計算する</button>
<div class="result" id="result"></div>
</div>
<script>
function calculateInvestment() {
const initialInvestment = parseFloat(document.getElementById('initialInvestment').value);
const monthlyInvestment = parseFloat(document.getElementById('monthlyInvestment').value);
const annualRate = parseFloat(document.getElementById('annualRate').value) / 100;
const targetAmount = parseFloat(document.getElementById('targetAmount').value);
const monthlyRate = annualRate / 12; // 月利
let currentAmount = initialInvestment;
let months = 0;
// 計算ループ
while (currentAmount < targetAmount) {
currentAmount += currentAmount * monthlyRate + monthlyInvestment;
months++;
}
// 達成までの月数
const years = Math.floor(months / 12);
const remainingMonths = months % 12;
// 現在の日付を取得して達成年月を計算
const now = new Date();
now.setMonth(now.getMonth() + months);
const targetYear = now.getFullYear();
const targetMonth = now.getMonth() + 1; // 0から始まるため+1
// 結果を表示
const resultDiv = document.getElementById('result');
resultDiv.innerHTML = `
<p>達成期間: ${months}ヶ月 (${years}年${remainingMonths}ヶ月)</p>
<p>達成年: ${targetYear}年${targetMonth}月</p>
`;
}
</script>
</body>
</html>
コメント