/ / Wypełnij nazwy poprzednich miesięcy w rozwijanym menu asp.net c # - c #

Wypełnij nazwy poprzednich miesięcy w rozwijanym asp.net c # - c #

Próbuję wpisać nazwę z poprzedniego miesiącaw tym bieżący miesiąc. tj. od marca 2018 do lutego 2017 roku. Używam funkcji addmonth do zwracania nazwy miesiąca, ale gdzieś stoję ciężko, aby zastosować moją logikę tutaj.

private void loadmonthlst()
{
DropDownMonth.Items.Clear();
int currentmonth = DateTime.Now.AddHours(13).Month;

for (int month = currentmonth-1; month >= -12; month--)
{
string monthName = DateTime.Now.AddMonths(month).ToString("MMMM yyyy");
DropDownMonth.Items.Add(new ListItem(monthName));
}
}

To rozwijanie zaczyna się od maja 2018 roku. Przyjęłam -2 z miesiąca, ale chcę najczystszy sposób, aby to zrobić

Odpowiedzi:

2 dla odpowiedzi № 1

Nie powinieneś zaczynać z bieżącym miesiącem, ponieważ month na początku będzie dodatni, a to doda miesiące, nie wróci (jak chcesz), oto jak to naprawić:

for (int month = 0; month >= -12; month--)
{
string monthName = DateTime.Now.AddMonths(month).ToString("MMMM yyyy");
Console.WriteLine(monthName);
}

Daje to z Marsa 2018 na Marsa 2017, jeśli chcesz zatrzymać się w lutym 2017, to po prostu zastąp month >= -12 z month >= -13.