比如查询到9月23号到10月23号的所有还款记录(9月23日发放贷款1W元),如下:
----------------------------------------------
1   9月28日  1K元
2  10月15日  2K元
----------------------------------------------我想实现:(9月28日-9月23日)*10000+(10月15日-9月28日)*(1W-1K)+(10月23日-9月28日)*(9K-2K)请问如何实现。

解决方案 »

  1.   

    给你个例子参考下SqlDataAdapter da = new SqlDataAdapter("select * from 交易表 order by 交易日期", conn);
    DataTable table = new DataTable();
    da.Fill(table);double balance = 0, charge = 0, interest = 0.0xx; // 余额、费用、利息
    for (int i = 0; i < table.Rows.Count; i++)
    {
    DataRow trx = table.Rows[i]; // 交易
    if (balance < 0)
    {
    DataRow trx_prev = table.Rows[i - 1];
    charge += ((DateTime)trx["交易日期"] - (DateTime)trx_prev["交易日期"]).Days * -balance * interest;
    }
    balance += trx["交易类型"] == "借" ? -(double)trx["贷款金额"] : (double)trx["还款金额"];
    }if (balance < 0)
    {
    DataRow trx_last = table.Rows[table.Rows.Count - 1];
    charge += (DateTime.Now - (DateTime)trx_last["交易日期"]).Days * -balance * interest;
    }
    return charge; // charge就是要收的贷款费用
      

  2.   

    你可以用数据库看看。。当中有个case when()判断你试试。。也许可以解决。。