drci.py

Created by matthieumorvant

Created on January 13, 2024

994 Bytes


def calculate_drci(cash_flows, rate):
    cumulative_cash_flow = 0
    for i in range(len(cash_flows)):
        cumulative_cash_flow += cash_flows[i] / ((1 + rate) ** i)
        if cumulative_cash_flow >= 0:
            previous_cash_flow = cumulative_cash_flow - cash_flows[i] / ((1 + rate) ** i)
            period_fraction = -previous_cash_flow / (cash_flows[i] / ((1 + rate) ** i))
            return i - 1 + period_fraction
    return "Investissement jamais récupéré"

def drci_calculator():
    cash_flows = []
    rate = float(input("Taux : "))
    initial_investment = float(input("Invest. init. : "))
    cash_flows.append(-initial_investment)
    years = int(input("Nb d'années : "))
    
    for i in range(1, years + 1):
        cf = float(input("Flux année " + str(i) + " : "))
        cash_flows.append(cf)
    
    drci = calculate_drci(cash_flows, rate)
    
    print("DRCI : " + str(drci) + " années" if isinstance(drci, float) else drci)

drci_calculator()