下拉列表中的日,月,年

时间:2014-03-19 00:00:28

标签: c#

嘿 我遇到了一个问题,当我试图弄明白时,我的大脑正在破坏。

我的问题是,我需要在下拉列表中获取日期和月份,就像我有我的一年。

我展示了如何在下拉列表中获得这一年。

然后我想要一个解决方案来做同样的事情,只需几天和几个月

我只需要背后的代码。

代码:

<asp:DropDownList ID="DropDownList_year" runat="server"></asp:DropDownList>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    int year = DateTime.Now.Year;

    if (!Page.IsPostBack)
    {
        for(int yr = year-3; yr > year - 115; yr--)
        {
            DropDownList_year.Items.Add(new ListItem(yr.ToString()));
        }

        for (int day = 1; day < 32; day++)
        {
            DropDownList_dag.Items.Add(new ListItem(day.ToString()));
        }
    }
}

我可以这样做吗?

for (int day = 1; day < 32; day++)
        {
            DropDownList_dag.Items.Add(new ListItem(day.ToString()));
        }

但是,2月份还没有31天,但是28天,那么怎么做呢?每个月都不改变它?

1 个答案:

答案 0 :(得分:0)

尝试使用MSDN - DateTime.DaysInMonth()作为基础来查找特定年份的特定月份的天数。

公历日期是正确的,您必须包含一些事件,以确保您在2月份获得正确的天数来计算闰年。

编辑:非常快速和脏的代码。将每个集合的内容添加到下拉列表中。请记住,2月份的天数只适用于今年。我会根据用户选择的年份处理事件,以获得正确的天数。

    private static void GetDates()
    {
        var lstYears = new List<int>();

        int iYearNow = DateTime.Now.Year;

        for (int year = iYearNow; year > iYearNow - 115; year--)
        {
            lstYears.Add(year);
        }

        var lstMonthWdays = new List<int[]>();

        for (int month = 1; month < 13; month++)
        {
            lstMonthWdays.Add(new int[] { month, DateTime.DaysInMonth(iYearNow, month) });
        }
    }

我不建议在制作中使用这个确切的代码,但它应该给你一个开始的地方。