UNPKG

realestate-jp

Version:

不動産関連のユーティリティ関数を提供するライブラリ

53 lines (52 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isRenewalYear = isRenewalYear; exports.calculateAnnualPayment = calculateAnnualPayment; exports.calculateMonthlyTotal = calculateMonthlyTotal; exports.calculateRenewalFee = calculateRenewalFee; const constants_js_1 = require("../constants.js"); /** * 指定した年が更新年かを判定する * @param year 経過年数(1年目から) * @param cycle 更新頻度(年単位)。0のときは更新なし。 * @returns 更新年であれば true */ function isRenewalYear(year, cycle) { if (cycle <= 0) return false; return year % cycle === 0; } /** * 年間の合計支払額を計算する(月額×12 + 更新料) * @param rent 月額家賃 * @param fee 月額維持費 * @param renewFee 更新料(月数) * @param isRenewal この年が更新年かどうか * @returns 年間支払額 */ function calculateAnnualPayment(rent, fee, renewFee, isRenewal) { const monthlyTotal = calculateMonthlyTotal(rent, fee); const renewalFee = calculateRenewalFee(rent, renewFee, isRenewal); return monthlyTotal * constants_js_1.MONTHS_PER_YEAR + renewalFee; } /** * 月額の合計支払額を計算する * @param rent 月額家賃 * @param fee 月額維持費(管理費や駐車場代など) * @returns 月額合計 */ function calculateMonthlyTotal(rent, fee) { return rent + fee; } /** * 更新料を計算する * @param rent 月額家賃 * @param renewFee 月数指定の更新料 * @param isRenewal この年が更新年であるかどうか * @returns 更新料(該当しない場合は0) */ function calculateRenewalFee(rent, renewFee, isRenewal) { if (!isRenewal) return 0; return rent * renewFee; }