資産運用 積立シミュレーション(目標達成期間)

スポンサーリンク
スポンサーリンク

目標資産達成までの期間シミュレーション

元手、年利、年数、積立金額から総資産額を出力するフォーム

プログラムはこちら

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>

コメント

タイトルとURLをコピーしました