c# - 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 .....
}
}
我知道我把它复杂化了,但我不知道该怎么做。请帮忙 !
解决方案
推荐阅读
- javascript - 在 HTML 日期输入上强制使用英语
- docker - 如何从同一个 Docker 映像将各种输入写入不同容器中的同一个文件?
- ios - 找不到 -lyoga 的库
- c# - 从 SqlConnection.Execute 存储过程中获取插入的 ID
- apache-spark-sql - spark sql如何在databricks中创建表
- css - CSS 多列结合标签和输入的拆分(在 HTML 中)
- c++ - Win32 查找所有分配的内存
- c# - 无法将 json 对象发布到 asp.net webapi
- kubernetes - 如何使用 kubernetes 中的大使在子路径下映射包含静态网页的服务?
- javascript - 使用 Jquery 和 AJAX 填充 Select 元素并且不使用 async:false 属性