所以我要做的是在未来的六个月内进入下拉框,我正在尝试类似的事情
public List<String> GetTrainingDates()
{
var monthList = new List<String>();
var currentMonth = DateTime.Now.Month;
for(var i = currentMonth; i <= currentMonth + 6; i++)
{
monthList.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i));
}
return monthList;
}
但是当然这大于12,所以必须重新开始12,然后再从1开始。
只是想知道是否有人知道如何做到这一点?
答案 0 :(得分:3)
只需使用%
modulus operator:
monthList.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(
((i - 1) % 12) + 1));
答案 1 :(得分:2)
public List<String> GetTrainingDates()
{
var monthList = new List<String>();
var currentDate = DateTime.Now();
for(var i = 0; i <= 6; i++)
{
monthList.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(currentDate.AddMonths(i).Month));
}
return monthList;
}
答案 2 :(得分:0)
使用.AddMonths
类的DateTime
功能...
public List<String> GetTrainingDates()
{
var monthList = new List<String>();
var month;
for(var i = 1; i <= 6; i++)
{
month = DateTime.Now.AddMonths(i).Month;
monthList.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(month));
}
return monthList;
}
答案 3 :(得分:0)
简单地说,您可以将LINQ
表达式与Range
.....
List<string> listMonth = Enumerable.Range(1, 6).ToList()
.Select(i => CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.AddMonths(i).Month))
.ToList();