如何在asp.net中添加从过去2年到现在的年份

时间:2014-06-03 17:31:10

标签: c# asp.net

我为此尝试了各种代码,但失败了。 请帮我填写下拉菜单。 提前谢谢。

    DropDownList2.Items.Clear();
    DropDownList2.Items.Add("--Year--");
    for (int i = 3;i>=0 ; i--)
   {
       Label1.Text = DateTime.Now.Year . ToString();
       //DateTimeFormatInfo dinfo = new DateTimeFormatInfo();
       int year= int .Parse ( Label1. Text);
       Label1.Text = dinfo.GetMonthName(year);
        int year= DateTime.Now.Year;
        Label1.Text = year.ToString();        
        DropDownList2.Items.Add(year+i+ " ");
   }

4 个答案:

答案 0 :(得分:6)

让我们从简化代码开始。这部分很好:

DropDownList2.Items.Clear();
DropDownList2.Items.Add("--Year--");

但是你的尝试有几个问题。第一个是从3下降到0步进1会给你以前年。因此,我们可以将您的for循环更改为从2年前到1年前的步骤。 Label1似乎没有任何用途,所以我们也要消除它。您基本上只剩下几行获得当前年份,循环三次迭代,并根据循环中的计数器计算新年(转换为字符串),然后将其添加到您的列表中:

var currentYear = DateTime.Today.Year;
for (int i = 2; i >= 0; i--)
{    
    // Now just add an entry that's the current year minus the counter
    DropDownList2.Items.Add((currentYear - i).ToString());
}

所以,用:

var currentYear = DateTime.Today.Year; // 2014

让我们循环:

  • i == 2时,(currentYear - i).ToString()为“2012”
  • i == 1时,(currentYear - i).ToString()为“2013”​​
  • i == 0时,(currentYear - i).ToString()为“2014”

答案 1 :(得分:0)

基于这个问题,我认为您的要求是:

  • 您想要显示从(CurrentYear)到(CurrentYear - 2)[过去2年]的年份
  • 岁月应按降序排列。

您可以使用以下代码获取当前年份和之前的2年:

var years = Enumerable.Range(DateTime.Now.Year - 2, 3)
    .OrderByDescending(x => x);

然后在您的代码中使用它:

DropDownList2.Items.Clear();
DropDownList2.Items.Add("--Year--");

foreach(var year in years)
{    
    DropDownList2.Items.Add(year.ToString());
}

答案 2 :(得分:0)

// Clear items:    
DropDownList1.Items.Clear();
// Add default item to the list
DropDownList1.Items.Add("--Year--");
// Start loop
for (int i = 0; i < 2; i++)
{
    // For each pass add an item
    // Add a number of years (negative, which will subtract) to current year
    DropDownList1.Items.Add(DateTime.Now.AddYears(-i).Year.ToString());
}

很抱歉早些时候没有解释。

答案 3 :(得分:0)

DropDownList2.Items.Clear();
string[] itens = new string[4] {
    "-- Year --",
    DateTime.Today.Year.ToString(),
    DateTime.Today.AddYears(-1).Year.ToString(),
    DateTime.Today.AddYears(-2).Year.ToString()
};
DropDownList2.Items.AddRange(itens);

或者

DropDownList2.Items.Clear();
ListItem[] itens = new ListItem[4] {
    new ListItem("-- Year --"),
    new ListItem(DateTime.Today.Year.ToString()),
    new ListItem(DateTime.Today.AddYears(-1).Year.ToString()),
    new ListItem(DateTime.Today.AddYears(-2).Year.ToString())
};
DropDownList2.Items.AddRange(itens);