{"id":8289,"date":"2025-02-25T17:54:09","date_gmt":"2025-02-25T08:54:09","guid":{"rendered":"https:\/\/chankorogashi.com\/?p=8289"},"modified":"2025-03-25T15:04:38","modified_gmt":"2025-03-25T06:04:38","slug":"post-8289","status":"publish","type":"post","link":"https:\/\/chankorogashi.com\/?p=8289","title":{"rendered":"\u30ed\u30fc\u30f3\u8fd4\u6e08\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"585\" src=\"https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-1024x585.jpg\" alt=\"\" class=\"wp-image-8304\" srcset=\"https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-1024x585.jpg 1024w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-300x171.jpg 300w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-768x439.jpg 768w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-1536x878.jpg 1536w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-530x303.jpg 530w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-565x323.jpg 565w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-710x406.jpg 710w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc-725x414.jpg 725w, https:\/\/chankorogashi.com\/wp-content\/uploads\/2025\/02\/\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30bf\u30fc.jpg 1792w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u4e0b\u8a18\u306b\u5165\u529b\u3059\u308b\u3068\u3001\u7c21\u5358\u306b\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u30ed\u30fc\u30f3\u8fd4\u6e08\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3<\/title>\n    <style>\n        \/* \u30dc\u30bf\u30f3\u30c7\u30b6\u30a4\u30f3 *\/\n        button {\n            background-color: #007BFF;\n            color: white;\n            border: none;\n            padding: 10px 20px;\n            font-size: 16px;\n            border-radius: 5px;\n            cursor: pointer;\n            transition: background-color 0.3s;\n        }\n\n        button:hover {\n            background-color: #0056b3;\n        }\n\n        \/* \u96c6\u8a08\u60c5\u5831\u306e\u30c7\u30b6\u30a4\u30f3 *\/\n        #summary {\n            margin-top: 20px;\n            padding: 10px;\n            border: 1px solid #ddd;\n            background-color: #f9f9f9;\n        }\n\n        \/* \u30c6\u30fc\u30d6\u30eb\u30c7\u30b6\u30a4\u30f3 *\/\n        table {\n            width: 100%;\n            border-collapse: collapse;\n            margin-top: 20px;\n        }\n\n        table, th, td {\n            border: 1px solid #ddd;\n        }\n\n        th, td {\n            padding: 8px;\n            text-align: center;\n        }\n\n        th {\n            background-color: #f4f4f4;\n        }\n\n        \/* \u30a8\u30e9\u30fc\u30cf\u30a4\u30e9\u30a4\u30c8 *\/\n        .error {\n            border: 2px solid red;\n            background-color: #ffebeb;\n        }\n    <\/style>\n<\/head>\n<body>\n\n<div>\n    <label>\u501f\u5165\u91d1\u984d: <input type=\"number\" id=\"loanAmount\" placeholder=\"\u4e07\u5186\"><\/label><br>\n    <label>\u8fd4\u6e08\u65b9\u5f0f:\n        <input type=\"radio\" name=\"repayMethod\" value=\"annuity\" checked> \u5143\u5229\u5747\u7b49\n        <input type=\"radio\" name=\"repayMethod\" value=\"principal\"> \u5143\u91d1\u5747\u7b49\n    <\/label><br>\n    <label>\u8fd4\u6e08\u983b\u5ea6:\n        <input type=\"radio\" name=\"repayFreq\" value=\"monthly\" checked> \u6bce\u6708\n        <input type=\"radio\" name=\"repayFreq\" value=\"halfYearly\"> \u534a\u5e74\u6bce\n        <input type=\"radio\" name=\"repayFreq\" value=\"yearly\"> \u6bce\u5e74\n    <\/label><br>\n    <label>\u91d1\u5229: <input type=\"number\" id=\"interestRate\" placeholder=\"%\uff08\u5e74\u5229\uff09\"><\/label><br>\n    <label>\u8fd4\u6e08\u671f\u9593: <input type=\"number\" id=\"loanTerm\" placeholder=\"\u5e74\"> \u5e74 <input type=\"number\" id=\"loanTermMonths\" placeholder=\"\u30f6\u6708\"> \u30f6\u6708<\/label><br>\n    <label>\u501f\u5165\u65e5: <input type=\"date\" id=\"loanDate\"><\/label><br>\n    <button onclick=\"calculateLoan()\">\u8a08\u7b97\u3059\u308b<\/button>\n    <div id=\"summary\"><\/div>\n    <div id=\"result\"><\/div>\n<\/div>\n\n<script>\nfunction calculateLoan() {\n    let loanAmount = parseFloat(document.getElementById(\"loanAmount\").value);\n    let interestRate = parseFloat(document.getElementById(\"interestRate\").value);\n    let loanTerm = parseInt(document.getElementById(\"loanTerm\").value);\n    let loanTermMonths = parseInt(document.getElementById(\"loanTermMonths\").value) || 0;\n    let loanDate = document.getElementById(\"loanDate\").value;\n\n    let requiredFields = [\"loanAmount\", \"interestRate\", \"loanTerm\", \"loanDate\"];\n    let hasError = false;\n    \n    requiredFields.forEach(id => {\n        let field = document.getElementById(id);\n        if (!field.value) {\n            field.classList.add(\"error\");\n            hasError = true;\n        } else {\n            field.classList.remove(\"error\");\n        }\n    });\n\n    if (hasError) {\n        document.getElementById(\"result\").innerHTML = \"<p style='color: red;'>\u5168\u3066\u306e\u5fc5\u9808\u9805\u76ee\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\";\n        return;\n    }\n\n    loanAmount *= 10000;\n    interestRate = interestRate \/ 100;\n    let monthlyRate = interestRate \/ 12;\n    loanTerm = (loanTerm * 12) + loanTermMonths;\n\n    let repayMethod = document.querySelector('input[name=\"repayMethod\"]:checked').value;\n    let repayFreq = document.querySelector('input[name=\"repayFreq\"]:checked').value;\n    let repayInterval = repayFreq === \"monthly\" ? 1 : repayFreq === \"halfYearly\" ? 6 : 12;\n    \n    let totalPayments = Math.ceil(loanTerm \/ repayInterval);\n    let monthlyPayment;\n\n    if (repayMethod === \"annuity\") {\n        if (interestRate === 0) {\n            monthlyPayment = loanAmount \/ totalPayments;\n        } else {\n            let factor = Math.pow(1 + monthlyRate, -loanTerm);\n            monthlyPayment = (loanAmount * monthlyRate) \/ (1 - factor);\n        }\n        monthlyPayment *= repayInterval;\n    } else {\n        let principalPerMonth = loanAmount \/ loanTerm;\n        monthlyPayment = (principalPerMonth * repayInterval) + (loanAmount * monthlyRate * repayInterval);\n    }\n\n    let balance = loanAmount;\n    let currentDate = new Date(loanDate);\n    let totalRepayAmount = 0, totalPrincipal = 0, totalInterest = 0;\n\n    let table = \"<table><tr><th>\u56de\u6570<\/th><th>\u5e74\/\u6708<\/th><th>\u8fd4\u6e08\u984d<\/th><th>\u5143\u91d1\u5206<\/th><th>\u5229\u606f\u5206<\/th><th>\u501f\u5165\u6b8b\u9ad8<\/th><\/tr>\";\n\n    for (let i = 1; i <= totalPayments; i++) {\n        let interest = balance * monthlyRate * repayInterval;\n        let principal = monthlyPayment - interest;\n        principal = Math.min(principal, balance);\n        balance -= principal;\n\n        let year = currentDate.getFullYear();\n        let month = currentDate.getMonth() + 1;\n\n        totalRepayAmount += monthlyPayment;\n        totalPrincipal += principal;\n        totalInterest += interest;\n\n        table += `<tr>\n                    <td>${i}<\/td>\n                    <td>${year}\/${month}<\/td>\n                    <td>${Math.round(monthlyPayment).toLocaleString()}<\/td>\n                    <td>${Math.round(principal).toLocaleString()}<\/td>\n                    <td>${Math.round(interest).toLocaleString()}<\/td>\n                    <td>${Math.round(balance).toLocaleString()}<\/td>\n                  <\/tr>`;\n\n        currentDate.setMonth(currentDate.getMonth() + repayInterval);\n    }\n\n    table += \"<\/table>\";\n\n    document.getElementById(\"summary\").innerHTML = `\n        <p><strong>\u652f\u6255\u56de\u6570:<\/strong> ${totalPayments} \u56de<\/p>\n        <p><strong>\u8fd4\u6e08\u7dcf\u984d:<\/strong> ${Math.round(totalRepayAmount).toLocaleString()} \u5186<\/p>\n        <p><strong>\u5143\u91d1\u5206\u5408\u8a08:<\/strong> ${Math.round(totalPrincipal).toLocaleString()} \u5186<\/p>\n        <p><strong>\u5229\u606f\u5206\u5408\u8a08:<\/strong> ${Math.round(totalInterest).toLocaleString()} \u5186<\/p>\n        <p><strong>\u501f\u5165\u6b8b\u9ad8:<\/strong> ${Math.round(balance).toLocaleString()} \u5186<\/p>\n    `;\n\n    document.getElementById(\"result\").innerHTML = table;\n}\n<\/script>\n\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u8a18\u306b\u5165\u529b\u3059\u308b\u3068\u3001\u7c21\u5358\u306b\u30ed\u30fc\u30f3\u652f\u6255\u3044\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002 \u30ed\u30fc\u30f3\u8fd4\u6e08\u30b7\u30df\u30e5\u30ec\u30fc\u30b7\u30e7\u30f3 \u501f\u5165\u91d1\u984d: \u8fd4\u6e08\u65b9\u5f0f: \u5143\u5229\u5747\u7b49 \u5143\u91d1\u5747\u7b49 \u8fd4\u6e08\u983b\u5ea6: \u6bce\u6708 \u534a\u5e74\u6bce \u6bce\u5e74 \u91d1\u5229: \u8fd4\u6e08\u671f\u9593:  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[144,133,10],"tags":[],"_links":{"self":[{"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/posts\/8289"}],"collection":[{"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8289"}],"version-history":[{"count":17,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/posts\/8289\/revisions"}],"predecessor-version":[{"id":8315,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/posts\/8289\/revisions\/8315"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=\/wp\/v2\/media\/8304"}],"wp:attachment":[{"href":"https:\/\/chankorogashi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chankorogashi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}