Tuesday, 11 March 2014

Calendar display date

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();
    }
}

No comments:

Post a Comment