我不小心将 0 传递到DateTimeFormatInfo
的GetMonthName
方法中:
DateTimeFormatInfo info = new DateTimeFormatInfo();
var monthName = info.GetMonthName(0);
并收到以下错误消息System.ArgumentOutOfRangeException
:有效值介于 1 和 13 之间(含 1 和 13)。
传入 1 到 12 将返回"一月"到"十二月",但传入 13 将返回空字符串。
我明白为什么月份数字不是零索引,但是第 13 个月有什么用?
这是因为日历对象可以容纳 13 个月(以处理基于农历月份的日历),请参阅 MSDN:
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
日历对象可以容纳 13 个月的日历。对于 12 个月的日历,空字符串始终作为第 13 个月的名称返回。
根据MSDN
日历对象可以容纳 包含 13 个月的日历。12个月 日历,空字符串始终为空字符串 返回为13号的名字 月。
我想它是用来确定儒略历中的闰日(http://en.wikipedia.org/wiki/Julian_calendar)。由于大多数使用使用公历,请不要担心。