Возвращает названия месяцев из текущего месяца

#c# #arrays #date

#c# #массивы #Дата

Вопрос:

Мне нужна помощь в C # в получении названий месяцев из текущего месяца, что означает, что пользователь вводит месяц (имя) и возвращает список месяцев с начального месяца до текущего месяца.

Пример; пользователь вводит «Август», а текущий месяц — «Декабрь», поэтому он должен возвращать «Август, сентябрь, октябрь, ноябрь, декабрь».

Я сделал несколько шагов, но все еще не могу добраться до него.

1-я попытка:

 string pattern = ("MMMM/yyyy"); 
            
Console.WriteLine("Enter Month: MMMM/yyyy");
DateTime inpMonth = DateTime.ParseExact(Console.ReadLine(),pattern,System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
string last = inpMonth.ToString("MMMM/yyyy");

DateTime date = DateTime.Now;
string curr = date.ToString("MMMM/yyyy");
 

2-я попытка (новый шаг):

 //First Date
DateTime 1Date = new DateTime(2020, 12, 01);
 
//Second Date
DateTime 2Date =new  DateTime(2019, 01, 01);
 
int month1 = (2Date.Month - 1Date.Month);
int month2 = (2Date.Year - 1Date.Year) * 12; 
int months = month1   month2;

string mon = months.DateTime.ToString("MMMM"); //trying to convert the month number to month name
 

Обе попытки, похоже, не дают никакого близкого результата..

Ответ №1:

Следующий код приведет к запрошенному вами результату:

 var start = "August";
var today = DateTime.Today;
var date = new DateTime(today.Year, DateTime.ParseExact(start, "MMMM", CultureInfo.CurrentCulture).Month, 1);
while (date < today)
{
   Console.WriteLine($"{date:MMMM}");
   date = date.AddMonths(1);
}