Как вывести месяц с окончанием? (например: января, декабря)

Рейтинг: 0Ответов: 0Опубликовано: 27.06.2023

У меня есть DTO - DayDto, объект выглядит вот так:

internal record CalendarDto(
    List<DayDto> Days,
    short Year,
    List<HolidayDto> Holidays);

internal record DayDto(
    DateTime? Day,
    DateTime? From,
    string Type,
    string Holiday);

internal record HolidayDto(
    int Id,
    string Title);

Моя задача: отформатировать дни. Ожидаемый результат:

  • Новогодние каникулы - 1, 2, 3, 4, 5, 6, 8 января
  • Рождество Христово - 7 января

Обратите еще, пожалуйста, внимание на то, что я вставляю месяц только в конец перечисления дней. Вот такой код для форматирования я написал:

private IEnumerable<(string Title, string Date)> GetFormattedHolidays(CalendarDto calendarDto)
{
    foreach(var holiday in calendarDto.Holidays)
    {
        var grouped = calendarDto.Days
           .Where(dayDto => dayDto.Holidays == holiday.Id.ToString())
           .GroupBy(dayDto => dayDto.Day.Value.Month)
           .Select(group =>
              $"{string.Join(", ", group.Select(dayDto => dayDto.Day?.Day))}"+
              $"{_context.Culture.DateTimeFormat.GetMonthName(group.Key)}")
           .ToArray();

        yield return ($"{holiday.Title}", $"{grouped.JoinToString( ", " )}");
    }
}

Проблема вся в том, что я получаю следующее:

  • Новогодние каникулы - 1, 2, 3, 4, 5, 6, 8 январь
  • Рождество Христово - 7 январь

Т.е окончание у месяца исчезает, как мне это исправить?

Ответы

Ответов пока нет.