Default.aspx
<body>
<form id="form1" runat="server">
<div>
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td align="left">
Start Date :
</td>
<td align="left">
<asp:TextBox runat="server" ID="txtStartDate" Enabled="false"></asp:TextBox>
</td>
<td align="left">
<asp:Calendar runat="server" ID="clndStart" OnSelectionChanged="clndStart_SelectionChanged">
</asp:Calendar>
</td>
</tr>
<tr>
<td align="left">
End Date :
</td>
<td align="left">
<asp:TextBox runat="server" ID="txtEndDate" Enabled="false"></asp:TextBox>
</td>
<td align="left">
<asp:Calendar runat="server" ID="clndEnd" OnSelectionChanged="clndEnd_SelectionChanged">
</asp:Calendar>
</td>
</tr>
<tr>
<td align="left">
Recurrence :
</td>
<td align="left">
<asp:RadioButton ID="rbtnRepeated" runat="server" GroupName="repeat" Checked="true"
Text="Repeated" />
<asp:DropDownList runat="server" ID="ddlRepeatedFirst">
<asp:ListItem Selected="True" Text="Every" Value="1"></asp:ListItem>
<asp:ListItem Text="Every Other" Value="2"></asp:ListItem>
<asp:ListItem Text="Every Third" Value="3"></asp:ListItem>
<asp:ListItem Text="Every Fourth" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left">
<asp:DropDownList runat="server" ID="ddlRepeatedSecond">
<asp:ListItem Selected="True" Text="Day" Value="1"></asp:ListItem>
<asp:ListItem Text="Week" Value="7"></asp:ListItem>
<asp:ListItem Text="Month" Value="3"></asp:ListItem>
<asp:ListItem Text="Year" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="left">
</td>
<td align="left">
<asp:RadioButton ID="rbtnRepeatedOn" runat="server" GroupName="repeat" Text="Repeated On" />
<asp:DropDownList runat="server" ID="ddlRepeatedOnFirst">
<asp:ListItem Selected="True" Text="First" Value="1"></asp:ListItem>
<asp:ListItem Text="Second" Value="2"></asp:ListItem>
<asp:ListItem Text="Third" Value="3"></asp:ListItem>
<asp:ListItem Text="Fourth" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left">
<asp:DropDownList runat="server" ID="ddlRepeatedOnSecond">
<asp:ListItem Text="Sunday" Value="0"></asp:ListItem>
<asp:ListItem Text="Monday" Selected="True" Value="1"></asp:ListItem>
<asp:ListItem Text="Tuesday" Value="2"></asp:ListItem>
<asp:ListItem Text="Wednesday" Value="3"></asp:ListItem>
<asp:ListItem Text="Thursday" Value="4"></asp:ListItem>
<asp:ListItem Text="Friday" Value="5"></asp:ListItem>
<asp:ListItem Text="Saturday" Value="6"></asp:ListItem>
</asp:DropDownList>
Of the
<asp:DropDownList runat="server" ID="ddlRepeatedOnThird">
<asp:ListItem Text="Month" Selected="True" Value="1"></asp:ListItem>
<asp:ListItem Text="3 Month" Value="3"></asp:ListItem>
<asp:ListItem Text="4 Month" Value="4"></asp:ListItem>
<asp:ListItem Text="6 Month" Value="6"></asp:ListItem>
<asp:ListItem Text="Year" Value="12"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" />
</td>
</tr>
<tr>
<td colspan="3" align="left">
Result:
</td>
</tr>
<tr>
<td align="left" colspan="3">
<asp:Label runat="server" ID="lblResult"></asp:Label>
</td>
</tr>
</table>
</div>
<br />
<br />
</form>
</body>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
GetResult();
}
private void GetResult()
{
DateTime SDate = clndStart.SelectedDate;
DateTime EDate = clndEnd.SelectedDate;
TimeSpan DateDiff = EDate.Subtract(SDate);
int Month;
if (EDate.Year == SDate.Year)
{
Month = EDate.Month - SDate.Month;
}
else
{
Month = ((EDate.Year - SDate.Year) * 12) + EDate.Month - SDate.Month;
}
string Result = "";
DataTable dt = new DataTable();
dt.Columns.Add("Id", System.Type.GetType("System.String"));
dt.Columns.Add("Month", System.Type.GetType("System.String"));
if (rbtnRepeated.Checked)
{
if (ddlRepeatedSecond.SelectedValue == "1" || ddlRepeatedSecond.SelectedValue == "7")
{
int Increment = Convert.ToInt32(ddlRepeatedFirst.SelectedValue);
Increment = Increment * Convert.ToInt32(ddlRepeatedSecond.SelectedValue);
for (int i = 0; i <= DateDiff.Days; i += Increment)
{
Result += SDate.AddDays(i).ToString() + "<br/>";
}
lblResult.Text = Result;
for (int i = 0; i <= EDate.Month - SDate.Month; i++)
{
DataRow dr = dt.NewRow();
dr["Id"] = dt.Rows.Count + 1;
dr["Month"] = SDate.AddMonths(i).ToString("MMM");
dt.Rows.Add(dr);
}
}
else
{
if (ddlRepeatedSecond.SelectedValue == "3")
{
for (int i = 0; i <= Month; i = i + Convert.ToInt32(ddlRepeatedFirst.SelectedValue))
{
if (SDate.AddMonths(i) > EDate)
break;
Result += SDate.AddMonths(i).ToString() + "<br/>";
}
lblResult.Text = Result;
for (int i = 0; i <= EDate.Month - SDate.Month; i++)
{
DataRow dr = dt.NewRow();
dr["Id"] = dt.Rows.Count + 1;
dr["Month"] = SDate.AddMonths(i).ToString("MMM");
dt.Rows.Add(dr);
}
}
}
}
else if (rbtnRepeatedOn.Checked)
{
for (int i = 0; i <= Month; i++)
{
SDate = i > 0 ? SDate.AddMonths(Convert.ToInt32(ddlRepeatedOnThird.SelectedValue)) : SDate.AddMonths(0);
if (SDate > EDate)
goto exit;
for (int j = 0; j < DateTime.DaysInMonth(SDate.Year, SDate.Month); j++)
{
if (SDate.Day > (7 * (Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue) - 1)) && SDate.Day <= (7 * Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue)) && Convert.ToInt32(SDate.DayOfWeek) == Convert.ToInt32(ddlRepeatedOnSecond.SelectedValue))
{
Result += SDate.ToString() + "<br/>";
SDate = SDate.AddDays(-j);
break;
}
else
SDate = SDate.AddDays(1);
if (SDate >= EDate)
goto exit;
}
}
exit: ;
lblResult.Text = Result;
}
}
protected void clndStart_SelectionChanged(object sender, EventArgs e)
{
txtStartDate.Text = clndStart.SelectedDate.ToString();
}
protected void clndEnd_SelectionChanged(object sender, EventArgs e)
{
txtEndDate.Text = clndEnd.SelectedDate.ToString();
}
}
<body>
<form id="form1" runat="server">
<div>
<table border="0" cellpadding="2" cellspacing="2">
<tr>
<td align="left">
Start Date :
</td>
<td align="left">
<asp:TextBox runat="server" ID="txtStartDate" Enabled="false"></asp:TextBox>
</td>
<td align="left">
<asp:Calendar runat="server" ID="clndStart" OnSelectionChanged="clndStart_SelectionChanged">
</asp:Calendar>
</td>
</tr>
<tr>
<td align="left">
End Date :
</td>
<td align="left">
<asp:TextBox runat="server" ID="txtEndDate" Enabled="false"></asp:TextBox>
</td>
<td align="left">
<asp:Calendar runat="server" ID="clndEnd" OnSelectionChanged="clndEnd_SelectionChanged">
</asp:Calendar>
</td>
</tr>
<tr>
<td align="left">
Recurrence :
</td>
<td align="left">
<asp:RadioButton ID="rbtnRepeated" runat="server" GroupName="repeat" Checked="true"
Text="Repeated" />
<asp:DropDownList runat="server" ID="ddlRepeatedFirst">
<asp:ListItem Selected="True" Text="Every" Value="1"></asp:ListItem>
<asp:ListItem Text="Every Other" Value="2"></asp:ListItem>
<asp:ListItem Text="Every Third" Value="3"></asp:ListItem>
<asp:ListItem Text="Every Fourth" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left">
<asp:DropDownList runat="server" ID="ddlRepeatedSecond">
<asp:ListItem Selected="True" Text="Day" Value="1"></asp:ListItem>
<asp:ListItem Text="Week" Value="7"></asp:ListItem>
<asp:ListItem Text="Month" Value="3"></asp:ListItem>
<asp:ListItem Text="Year" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td align="left">
</td>
<td align="left">
<asp:RadioButton ID="rbtnRepeatedOn" runat="server" GroupName="repeat" Text="Repeated On" />
<asp:DropDownList runat="server" ID="ddlRepeatedOnFirst">
<asp:ListItem Selected="True" Text="First" Value="1"></asp:ListItem>
<asp:ListItem Text="Second" Value="2"></asp:ListItem>
<asp:ListItem Text="Third" Value="3"></asp:ListItem>
<asp:ListItem Text="Fourth" Value="4"></asp:ListItem>
</asp:DropDownList>
</td>
<td align="left">
<asp:DropDownList runat="server" ID="ddlRepeatedOnSecond">
<asp:ListItem Text="Sunday" Value="0"></asp:ListItem>
<asp:ListItem Text="Monday" Selected="True" Value="1"></asp:ListItem>
<asp:ListItem Text="Tuesday" Value="2"></asp:ListItem>
<asp:ListItem Text="Wednesday" Value="3"></asp:ListItem>
<asp:ListItem Text="Thursday" Value="4"></asp:ListItem>
<asp:ListItem Text="Friday" Value="5"></asp:ListItem>
<asp:ListItem Text="Saturday" Value="6"></asp:ListItem>
</asp:DropDownList>
Of the
<asp:DropDownList runat="server" ID="ddlRepeatedOnThird">
<asp:ListItem Text="Month" Selected="True" Value="1"></asp:ListItem>
<asp:ListItem Text="3 Month" Value="3"></asp:ListItem>
<asp:ListItem Text="4 Month" Value="4"></asp:ListItem>
<asp:ListItem Text="6 Month" Value="6"></asp:ListItem>
<asp:ListItem Text="Year" Value="12"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="3" align="center">
<asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="btnSubmit_Click" />
</td>
</tr>
<tr>
<td colspan="3" align="left">
Result:
</td>
</tr>
<tr>
<td align="left" colspan="3">
<asp:Label runat="server" ID="lblResult"></asp:Label>
</td>
</tr>
</table>
</div>
<br />
<br />
</form>
</body>
Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
GetResult();
}
private void GetResult()
{
DateTime SDate = clndStart.SelectedDate;
DateTime EDate = clndEnd.SelectedDate;
TimeSpan DateDiff = EDate.Subtract(SDate);
int Month;
if (EDate.Year == SDate.Year)
{
Month = EDate.Month - SDate.Month;
}
else
{
Month = ((EDate.Year - SDate.Year) * 12) + EDate.Month - SDate.Month;
}
string Result = "";
DataTable dt = new DataTable();
dt.Columns.Add("Id", System.Type.GetType("System.String"));
dt.Columns.Add("Month", System.Type.GetType("System.String"));
if (rbtnRepeated.Checked)
{
if (ddlRepeatedSecond.SelectedValue == "1" || ddlRepeatedSecond.SelectedValue == "7")
{
int Increment = Convert.ToInt32(ddlRepeatedFirst.SelectedValue);
Increment = Increment * Convert.ToInt32(ddlRepeatedSecond.SelectedValue);
for (int i = 0; i <= DateDiff.Days; i += Increment)
{
Result += SDate.AddDays(i).ToString() + "<br/>";
}
lblResult.Text = Result;
for (int i = 0; i <= EDate.Month - SDate.Month; i++)
{
DataRow dr = dt.NewRow();
dr["Id"] = dt.Rows.Count + 1;
dr["Month"] = SDate.AddMonths(i).ToString("MMM");
dt.Rows.Add(dr);
}
}
else
{
if (ddlRepeatedSecond.SelectedValue == "3")
{
for (int i = 0; i <= Month; i = i + Convert.ToInt32(ddlRepeatedFirst.SelectedValue))
{
if (SDate.AddMonths(i) > EDate)
break;
Result += SDate.AddMonths(i).ToString() + "<br/>";
}
lblResult.Text = Result;
for (int i = 0; i <= EDate.Month - SDate.Month; i++)
{
DataRow dr = dt.NewRow();
dr["Id"] = dt.Rows.Count + 1;
dr["Month"] = SDate.AddMonths(i).ToString("MMM");
dt.Rows.Add(dr);
}
}
}
}
else if (rbtnRepeatedOn.Checked)
{
for (int i = 0; i <= Month; i++)
{
SDate = i > 0 ? SDate.AddMonths(Convert.ToInt32(ddlRepeatedOnThird.SelectedValue)) : SDate.AddMonths(0);
if (SDate > EDate)
goto exit;
for (int j = 0; j < DateTime.DaysInMonth(SDate.Year, SDate.Month); j++)
{
if (SDate.Day > (7 * (Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue) - 1)) && SDate.Day <= (7 * Convert.ToInt32(ddlRepeatedOnFirst.SelectedValue)) && Convert.ToInt32(SDate.DayOfWeek) == Convert.ToInt32(ddlRepeatedOnSecond.SelectedValue))
{
Result += SDate.ToString() + "<br/>";
SDate = SDate.AddDays(-j);
break;
}
else
SDate = SDate.AddDays(1);
if (SDate >= EDate)
goto exit;
}
}
exit: ;
lblResult.Text = Result;
}
}
protected void clndStart_SelectionChanged(object sender, EventArgs e)
{
txtStartDate.Text = clndStart.SelectedDate.ToString();
}
protected void clndEnd_SelectionChanged(object sender, EventArgs e)
{
txtEndDate.Text = clndEnd.SelectedDate.ToString();
}
}
No comments:
Post a Comment