Я создал простой расчет кредита без амортизации, но я не смог показать детали LoanPayment в dataGridView
Letsay сегодня 2019-03-04 И время кредита начинает тикать ... У меня есть эти данные:
decimal LoanAmount = Convert.ToDecimal(txtLoanAmount.Text.Trim());
decimal period = Convert.ToDecimal(txtYears.Text.Trim()); // Years
decimal rate = Convert.ToDecimal(txtRate.Text.Trim());
Letsay период составляет 5 лет
Поскольку сегодня 2019-03-04, тогда я должен рассчитать те дни в том же месяце, который я имею в виду между 2019-03-04 и 2019-03-31.Я хочу, чтобы Клиент окупал каждый месяц последней даты.Я имею в виду, что первая выплата будет 2019-03-31, вторая - 2019-04-30, третья - 2019-05-31 и т. Д. До тех пор, пока LoanAmount не станет равным 0 (ziro).
int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
DateTime mydate = DateTime.Now;
int day = Convert.ToInt32(mydate.Day.ToString());
int restOfdays = days - day; // This givs me offcourse 27 Days
Так что теперь я могу рассчитать для этих дней между 2019-03-04 и 2019-03-31
decimal Days = period * 12 * 30; // Years in days
decimal RateByDays = rate / (100*12*30); // Rate for day
decimal LoanByDays = LoanAmount / Days; //Loan amount divided with days
decimal payAmountByDays = LoanAmount*RateByDays +LoanByDays;
decimal payAmountByMonths = Decimal.Round(payAmountByDays * 30);
decimal payRestOfMonthDays = Decimal.Round(payDays*restdays); // between 2019-03-04 and 2019-03-31
Letsay LoanAmount составляет 500000, ставка составляет 3% и период 2 года, что я хочу показать наdataGridПосмотреть все платежные плоскости с начала Даты займа до тех пор, пока все деньги не будут возвращены. Я имею в виду, что LoanAmount имеет значение ziro, поэтому клиент знает, сколько и когда или когда он / она заплатит.Список за период оплаты.Вот так.
Date AmountToPay
2019-03-31 19875 // this is for those between days , 27 days
2019-04-30 22083
2019-05-31 22083
2019-06-30 22083
And so on until 2 years
2021-02 or 03 depends when LoanAmount will be ziro.
Я пытаюсь сделать это, но я знаю, что я не прав
public class PaymentTimeTable
{
public DateTime payDate { get; set; }
public decimal AmountToPayByMonth { get; set; }
public int TermOfYears { get; set; }
}
public void Calculate(DateTime DateOfPay, decimal amountToPayByMonth, int term)
{
int paymentOpportunity = term * 12; // How many times or how many months will customer pay
List<PaymentTimeTable> payList = new List<PaymentTimeTable>();
for(int i = 0; i < paymentOpportunity; i++)
{
// I dont know how to formulate here too .....
}
}
Я знаю, что усложнил это больше, чем следовало, но яне знаю как.Пожалуйста, помогите!