GetMonthName:有效值介于 1 和 13 之间,包括 1 和 13。为啥?
Posted
技术标签:
【中文标题】GetMonthName:有效值介于 1 和 13 之间,包括 1 和 13。为啥?【英文标题】:GetMonthName: Valid values are between 1 and 13, inclusive. Why?GetMonthName:有效值介于 1 和 13 之间,包括 1 和 13。为什么? 【发布时间】:2011-08-24 21:46:54 【问题描述】:我不小心将 0 传递给了DateTimeFormatInfo
的GetMonthName
方法:
DateTimeFormatInfo info = new DateTimeFormatInfo();
var monthName = info.GetMonthName(0);
并收到带有以下错误消息的System.ArgumentOutOfRangeException
:有效值介于 1 和 13 之间。
传入 1 到 12 会返回“一月”到“十二月”,但传入 13 会返回一个空字符串。
我知道为什么月份数字不是零索引的,但是第 13 个月是干什么用的?
【问题讨论】:
纯属猜测,但农历(例如犹太历)每隔这么多年就会插入一个闰月,因为月份要短得多。 哦,如果是第 13 个月的 13 号星期五,请不要打开你的电脑。 @leppie 请注意,日历和日期是一个滑坡,所以你的“有趣”...当心,这里有龙 :) @Lasse V. Karlsen:我倾向于避免任何包含“posix time”字样的对话;p 显然是在被低估的十二月。 【参考方案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)。由于大多数人使用公历,所以不用担心。
【讨论】:
-1:不,它适用于农历,它会不时增加一个额外的月份形式以避免偏离太阳年太远。以上是关于GetMonthName:有效值介于 1 和 13 之间,包括 1 和 13。为啥?的主要内容,如果未能解决你的问题,请参考以下文章
javascript/jquery 介于 -13 和 13 之间的随机数,不包括 -3 和 3 之间的数字
您如何有效地生成介于 0 和上限 N 之间的 K 个非重复整数列表 [重复]
MongoDB Stitch JWT 自定义身份验证:需要有效的 UID(介于 1 到 128 个字符之间)