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); }
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); }
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; }