11

我不小心将 0 传递给DateTimeFormatInfo'sGetMonthName方法:

DateTimeFormatInfo info = new DateTimeFormatInfo();
var monthName = info.GetMonthName(0);

并收到System.ArgumentOutOfRangeException此错误消息:有效值介于 1 和 13 之间,包括 1 和 13。

传入 1 到 12 会将“January”返回到“December”,但传入 13 会返回一个空字符串。

我可以看到为什么月份数字不是零索引,但是第 13 个月是什么?

4

3 回答 3

13

这是因为日历对象可以容纳 13 个月(以处理基于农历月份的日历),请参阅 MSDN:

http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx

日历对象可以容纳 13 个月的日历。对于 12 个月的日历,空字符串始终作为第 13 个月的名称返回。

于 2011-05-13T12:28:24.743 回答
7

根据MSDN

日历对象可以容纳 13 个月的日历。对于 12 个月的日历,空字符串始终作为第 13 个月的名称返回。

于 2011-05-13T12:28:58.143 回答
-2

我想它是用来确定儒略历(http://en.wikipedia.org/wiki/Julian_calendar)中的闰日。由于大多数使用使用公历日历,所以不用担心。

于 2011-05-13T12:29:46.107 回答