房贷还款计算的 python 程序¶
@2010-08-25 新版功能: 创建
贴一个几年前用python写的房贷还款计算程序,:)
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, sys
if __name__ == "__main__":
pay = ( # 月还款额
5000, 5000, 5000, # 2007
5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, # 2008
)
year = 2007 # 还款起始年
month = 10 # 还款起始月
day = 15 # 还款日
total = 600000.00; # 贷款总额
# 从还款起始上一年开始的年利率
# 如果还款起始月是一月,需要上一年的利率
rate = ( 0, 5.04, 5.22, 3.87, 3.87 )
capital = 0. # 本金
t_pay = 0. # 总本金
interest = 0. # 利息
t_interest = 0. # 总利息
p_counter = 0;
r_counter = 1;
result = []
result.append(" 时间 还款 本金 利息 待还本金 以还本金 总利息")
while (total > 0.009):
if (month == 1) : # 计算跨年度利率
rate_m = (rate[r_counter - 1] * (31 - day) + rate[r_counter]* (day - 1)) /30.
else:
rate_m = rate[r_counter]
rate_m = rate_m * 0.01 / 12. # 月利率 = 年利率 / 12.
interest = total * rate_m; # 当月利息
t_interest += interest; # 总利息
capital = pay[p_counter] - interest; # 当月本金
if (total <= capital) : # 当月本金超过余额,调整
capital = interest/rate_m
t_pay += capital # 以还总本金
total -= capital; # 剩余本金
if (month == 1 ) :
result.append(" 时间 还款 本金 利息 待还本金 以还本金 总利息")
result.append("%d%02d %9.2f %9.2f %7.2f %9.2f %9.2f %9.2f" % (year, month, capital + interest, capital, interest, total, t_pay, t_interest))
if (p_counter < (len(pay) - 1)) : p_counter = p_counter + 1
if (month == 12):
year = year + 1
month = 1
if (r_counter < (len(rate) - 1)) : r_counter = r_counter + 1
else:
month = month + 1
if os.name == "posix":
print "\n".join(result)
else:
print "\n".join(result).decode('utf-8')
sys.exit(0)