Пример #1
0
        public static void DetermineMonth(MonthlyBreakdown month, int monthsOut)
        {
            DateTime today        = DateTime.Now;
            string   displayMonth = today.AddMonths(monthsOut).ToString("MMMM") + " " + today.AddMonths(monthsOut).Year.ToString();

            month.Month = displayMonth;
        }
        public static LoanDetails GetLoanDetails(decimal loanAmount, decimal termsInMonths, decimal interestRate)
        {
            //Create instance of Loan Detail class that will hold critical information
            LoanDetails loanDetails = new LoanDetails();

            //Convert strings to necessary decimals, place in loanDetail properties

            loanDetails.LoanAmount    = loanAmount;
            loanDetails.TermsInMonths = termsInMonths;
            loanDetails.InterestRate  = interestRate / 100;

            //RRRR, Calculate r, discount factor, and monthly payments
            loanDetails.CalculateLoanParameters();

            for (int i = 1; i <= Decimal.ToInt32(loanDetails.TermsInMonths); i++)
            {
                MonthlyBreakdown month = new MonthlyBreakdown();
                month.MonthNumber = i;
                LoanCalculations.DetermineMonth(month, i);

                if (i == Decimal.ToInt32(loanDetails.TermsInMonths))
                {
                    LoanCalculations.CalculateLastMonthDetailed(month, loanDetails);
                }
                else
                {
                    LoanCalculations.CalculateMonthDetailed(month, loanDetails);
                }
                loanDetails.TotalLoanDetailsByMonth.Add(month);
            }

            return(loanDetails);
        }
Пример #3
0
        private Dictionary <int, MonthlyBreakdown> _initiateMonthlyBreakdown()
        {
            var breakdown = new Dictionary <int, MonthlyBreakdown>();

            foreach (int month in Enum.GetValues(typeof(Months)))
            {
                breakdown[month] = new MonthlyBreakdown(month);
            }

            return(breakdown);
        }
Пример #4
0
 public static void CalculateLastMonthDetailed(MonthlyBreakdown month, LoanDetails loanDetails)
 {
     month.StartingBalance       = loanDetails.Balance;
     month.PeriodInterest        = month.StartingBalance * loanDetails.R;
     month.PeriodPrincipal       = month.StartingBalance;
     month.MonthlyPayment        = Math.Round(month.PeriodInterest, 2) + Math.Round(month.PeriodPrincipal, 2);
     month.EndingBalance         = month.StartingBalance - month.PeriodPrincipal;
     loanDetails.Balance         = month.EndingBalance;
     loanDetails.TotalInterest  += month.PeriodInterest;
     month.TotalInterestToDate   = loanDetails.TotalInterest;
     loanDetails.TotalPrincipal += month.PeriodPrincipal;
 }