GetMonthName: Допустимые значения: от 1 до 13 включительно. Зачем?
Я случайно прошел 0 в DateTimeFormatInfo
GetMonthName
метод:
DateTimeFormatInfo info = new DateTimeFormatInfo();
var monthName = info.GetMonthName(0);
и получил сообщение System.ArgumentOutOfRangeException
с этим сообщением об ошибке: Допустимые значения: от 1 до 13 включительно.
Переход от 1 до 12 возвращает "Январь" до "Декабря", но передача в 13 возвращает пустую строку.
Я могу понять, почему номера месяца не нулевые индексируются, но какой месяц 13 для?
Ответы
Ответ 1
Это потому, что календарные объекты могут вмещать 13 месяцев (для обработки календарей на основе лунных месяцев), см. MSDN:
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
Объекты календаря могут вмещать календари с 13 месяцами. Для 12-месячных календарей пустая строка всегда возвращается как имя 13-го месяца.
Ответ 2
Согласно MSDN
Объекты календаря могут календари с 13 месяцами. За 12 месяцев календари, пустая строка всегда вернулся как имя 13-го месяц.
Ответ 3
Я предполагаю, что он используется для определения високосного дня в юлианском календаре (http://en.wikipedia.org/wiki/Julian_calendar). Поскольку большая часть использования использует григорианский каландр, просто не беспокойтесь.