0

だから私がやろうとしているのは、ドロップダウンボックスで将来の6か月を取得することであり、私は次のようなことを試みていました

        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から再開する必要があります。

誰かがこれを行う方法について良いアイデアを持っているかどうか疑問に思っていますか?

4

4 に答える 4

3

%モジュラス演算子を使用するだけです:

monthList.Add(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(
               ((i - 1) % 12) + 1));
于 2012-08-01T15:44:05.273 に答える
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;
        }
于 2012-08-01T15:44:16.643 に答える
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;
}
于 2012-08-01T15:44:52.303 に答える
0

簡単に言えば、.....LINQで式を使用できます。Range

 List<string> listMonth = Enumerable.Range(1, 6).ToList()
                             .Select(i => CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Now.AddMonths(i).Month))
                             .ToList();
于 2012-08-01T16:40:19.840 に答える