首页 > 解决方案 > C# 计算每月付款并在 Windows 窗体中显示付款机会的漏洞日期

问题描述

我创建了一个没有 Amorzation 的简单计算贷款,但我无法在 dataGridView 中显示详细的 LoanPayment

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 年 3 月 4 日,所以我必须计算同一个月内的那些日子,我的意思是 2019 年 3 月 4 日和 2019 年 3 月 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 年我想要在 dataGridView 上显示从贷款日期开始到所有钱都还清的所有付款平面我的意思是 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 .....
          }

  }

我知道我把它复杂化了,但我不知道该怎么做。请帮忙 !

标签: c#winformsdatagridview

解决方案


推荐阅读