Esempio n. 1
0
        public static List <Parcela> CalcularParcelas(decimal saldoDevedor, decimal taxaDeJuros, int prazo)
        {
            var parcelas                  = new List <Parcela>();
            var saldoDevedorAtual         = saldoDevedor;
            var amortizacaoAtravesDoPrazo = ValorAmortizacao(saldoDevedor, prazo);

            parcelas.Add(new Parcela(juros: 0, amortizacao: 0, saldoDevedor: saldoDevedor));

            for (var numeroDaParcela = 0; numeroDaParcela < prazo; numeroDaParcela++)
            {
                var juros = JurosCompostos.CalcularJuros(saldoDevedorAtual, taxaDeJuros, prazo: 1);
                saldoDevedorAtual -= amortizacaoAtravesDoPrazo;
                parcelas.Add(new Parcela(juros, amortizacaoAtravesDoPrazo, saldoDevedorAtual));
            }
            return(parcelas);
        }
Esempio n. 2
0
        public static List <Parcela> CalcularParcelas(decimal saldoDevedor, decimal taxaDeJuros, int prazo)
        {
            var parcelas = new List <Parcela>
            {
                new Parcela(juros: 0, amortizacao: 0, saldoDevedor: saldoDevedor)
            };

            var saldoDevedorAtual       = saldoDevedor;
            var coeficienteK            = (taxaDeJuros * (1 + taxaDeJuros).ElevadoPor(prazo)) / ((1 + taxaDeJuros).ElevadoPor(prazo) - 1);
            var prestacaoAtravesDoPrazo = (coeficienteK * saldoDevedor);

            for (var numeroDaParcela = 0; numeroDaParcela < prazo; numeroDaParcela++)
            {
                var juros       = JurosCompostos.CalcularJuros(saldoDevedorAtual, taxaDeJuros, 1);
                var amortizacao = prestacaoAtravesDoPrazo - juros;
                saldoDevedorAtual -= amortizacao;
                var parcelaAtual = new Parcela(juros, amortizacao, saldoDevedorAtual);
                parcelas.Add(parcelaAtual);
            }
            parcelas.Last().SaldoDevedor = 0.0M;
            return(parcelas);
        }