This way
Enter The Amount
<asp:TextBox ID="txtAmount" Text="30000" runat="server" />
Enter the Number of Intallment
<asp:DropDownList ID="ddlInstallmentPeriods" runat="server">
<asp:ListItem Value="3" Text="3 months"></asp:ListItem>
<asp:ListItem Value="6" Text="6 months"></asp:ListItem>
<asp:ListItem Value="9" Text="9 months"></asp:ListItem>
<asp:ListItem Value="12" Text="12 months"></asp:ListItem>
<asp:ListItem Value="24" Text="24 months"></asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="gvInstallments" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:BoundField DataField="Installment" HeaderText="Installment No" HtmlEncode = "false" />
<asp:BoundField DataField="Amount" HeaderText="Amount" />
<asp:BoundField DataField="Date" HeaderText="Date" DataFormatString = "{0:dd/MM/yyyy}" />
</Columns>
</asp:GridView>
<asp:Button ID="btnCalculateInstallments" runat="server" OnClick="CalculateInstallments"
Text="Generate Installments In Grid" />
protected void CalculateInstallments(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Installment", typeof(string)),
new DataColumn("Amount", typeof(double)),
new DataColumn("Date", typeof(DateTime))});
int installmentPeriod = int.Parse(ddlInstallmentPeriods.SelectedItem.Value);
decimal installmentAmount = decimal.Parse(txtAmount.Text.Trim()) / installmentPeriod;
for (int i = 0; i < installmentPeriod; i++)
{
dt.Rows.Add(this.GetInstallementText((i + 1).ToString()), installmentAmount, DateTime.Now.AddMonths(i));
}
gvInstallments.DataSource = dt;
gvInstallments.DataBind();
}
private string GetInstallementText(string installment)
{
string postFix = string.Empty;
if (installment.EndsWith("1") && int.Parse(installment) != 11)
{
postFix = "<sup>st</sup>";
}
else if (installment.EndsWith("2") && int.Parse(installment) != 12)
{
postFix = "<sup>nd</sup>";
}
else if (installment.EndsWith("3") && int.Parse(installment) != 13)
{
postFix = "<sup>rd</sup>";
}
else
{
postFix = "<sup>th</sup>";
}
return installment + postFix;
}
Installment No | Amount | Date |
1st |
10000 |
18/11/2013 |
2nd |
10000 |
18/12/2013 |
3rd |
10000 |
18/01/2014 |