2015-04-12 106 views
0

我想弄清楚如何減去每日複利利息的貸款付款。現在,我想我已經得到了正確的代碼,在10年的貸款,每天減去支付金額:每月減去每日複利利息的貸款付款

P = 20000 
r = .068 
t = 10 
n = 365 

payment = 200 

for payment_number in xrange(1, n*t): 

    daily_interest = P * (1+(r/n)) - P 

    P = (P + daily_interest) - payment 

    print P 

我想如果可能,它仍然打印日均餘額而是每個月減去支付而不是每天。最初我雖然可能使用xrange(1,30)的嵌套循環,但我不確定這是否正常工作。在此先感謝您的建議!

回答

0

如何插入if語句用於此目的?

P = P-200 if payment_number%30 == 0 else P 

如果payment_number變量是30

+0

不要忘記二月。 – domoarrigato

0

多這將運行「月」是一個複雜的想法。要完全處理這些月份,您需要使用日期時間模塊。

from datetime import date, timedelta 
date_started = date(2000,1,1) 

所以說你是從開始日期123天,我們需要計算日期:所以現在我們知道需要計算多少天是日期和第一之間

date = date_started + timedelta(days=123) 
>>> date 
datetime.date(2000, 5, 3) 

本月,dateutil模塊可以幫助我們(你將不得不下載它)。

from dateutil.relativedata import relativedelta 
firstofmonth_date = date_started + relativedelta(months=4) 
tddays = firstofmonth_date - date_started 
days = tddays.days 

然後,只需將「天」放入已有的功能中,您應該很好。我唯一留給你的部分是確定你的日期之間已經過了多少個月。