This way:
<form id="form1" runat="server">
<div>
Start Date
<asp:TextBox ID="txtStartDate" runat="server" />
<br />
End Date
<asp:TextBox ID="txtEndDate" runat="server" />
<asp:Calendar ID="cldHolidays" runat="server" OnPreRender="cldHolidays_OnPreRender">
</asp:Calendar>
<br />
<asp:Label ID="lblTotaolLeavs" runat="server" />
<br />
<asp:Button runat="server" OnClick="CalculateLeavesexcludingHolidays" Text="Calculate Leaves excluding Holidays" />
</div>
</form>
C#:
protected void cldHolidays_OnPreRender(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3]{new DataColumn("Festival_Id",typeof(int)),
new DataColumn("Festival_Name",typeof(string)),
new DataColumn("Festival_Date",typeof(DateTime))});
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-07-28 00:00:00.000");
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-07-29 00:00:00.000");
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-07-30 00:00:00.000");
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-07-31 00:00:00.000");
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-08-01 00:00:00.000");
dt.Rows.Add(1, "Eid_ul_Fitr", "2014-08-03 00:00:00.000");
int maxRow = dt.Rows.Count - 1;
DateTime startDate = Convert.ToDateTime(dt.Rows[0]["Festival_Date"]);
DateTime endDate = Convert.ToDateTime(dt.Rows[maxRow]["Festival_Date"]);
TimeSpan difference = endDate.Date - startDate.Date;
cldHolidays.SelectedDates.Clear(); //Clear previously selected dates, if any
for (int i = 0; i <= difference.Days; i++)
cldHolidays.SelectedDates.Add(startDate.AddDays(i)); //Highlight the dates
}
protected void CalculateLeavesexcludingHolidays(object sender, EventArgs e)
{
int count = 0;
DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
SelectedDatesCollection dates = cldHolidays.SelectedDates;
DateTime i = startDate;
for (i = startDate; i < endDate; i = i.AddDays(1))
{
if (dates.Contains(i))
{
count++;
}
}
int leavs = Convert.ToInt32((endDate - startDate).ToString("dd")) - count;
this.lblTotaolLeavs.Text = string.Format("Total Leaves excluding Holidays {0}", leavs.ToString());
}
Thank You.