嘿 我遇到了一个问题,当我试图弄明白时,我的大脑正在破坏。
我的问题是,我需要在下拉列表中获取日期和月份,就像我有我的一年。
我展示了如何在下拉列表中获得这一年。
然后我想要一个解决方案来做同样的事情,只需几天和几个月
我只需要背后的代码。
<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天,那么怎么做呢?每个月都不改变它?
答案 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) });
}
}
我不建议在制作中使用这个确切的代码,但它应该给你一个开始的地方。