0

我正在尝试填充由dropdown以下代码No.of days生成的system

Sub LoadDay()
        Try
            ddlDay.Items.Clear()
            For i As Integer = 1 To System.DateTime.DaysInMonth(DateTime.Today.Year, ddlMonth.SelectedValue)
                ddlDay.Items.Add(New ListItem(i.ToString(), i.ToString("00")))
            Next
            ddlDay.Items.Insert(0, New ListItem("--Select--", -999))
        Catch ex As Exception
        End Try
    End Sub

问题是,对于 2 月份,它只显示 28 天,因为以下代码Days是根据当年生成的,而今年不是闰年

System.DateTime.DaysInMonth(DateTime.Today.Year, ddlMonth.SelectedValue)

如何修复它以始终显示二月的 29 天?

4

2 回答 2

0

您可以在 DateTime 中使用 DayInMonth

Dim dayinMonth As String
dayinMonth = System.DateTime.DaysInMonth(2012, 2)

这使您可以知道 2015 年 2 月的月份中的哪一天。里面的参数代表年和月

于 2015-05-13T08:05:08.010 回答
0

我很想知道您的要求是什么,您必须能够选择无效的日子,但是,如果您不希望您的日子根据年份而改变,只需创建自己的日子数组。这使您的意图比在 DaysInMonth 函数中添加任意年份更清楚。

            Dim Days = {31,28,31,30,31,30,31,31,30,31,30,31}
            ddlDay.Items.Clear()
            For i As Integer = 1 To Days(ddlMonth.SelectedValue-1)
                ddlDay.Items.Add(New ListItem(i.ToString(), i.ToString("00")))
            Next
            ddlDay.Items.Insert(0, New ListItem("--Select--", -999))
于 2015-05-13T14:44:40.843 回答