13月
.NET の DateTimeFormatInfo では、週は7個で月は13個です。ヴァナディール時間を提供する12ヶ月8曜日のカレンダーが作れないのは悲しいことです。
さて、8曜日はともかく13ヶ月なのはおそらくヘブライ暦のためなんではないかと思いますが、ヘブライ暦だと閏年は確かに13ヶ月なんですが、平年の12ヶ月のうち1つが閏年に存在しないため、月としては合計14種類の月があるらしいです。
しかし、DateTimeFormatInfo で保持される月は13個なわけで、じゃあ平年と閏年で違う DateTimeFormatInfo があるかというと、そうでもないんですね。Microsoft .NET Framework の組み込み CultureInfo だと、すべてのカルチャの AbbreviatedMonthNames は12個づつ設定されていますので、おそらくאדר אとאדר בがאדר として登録されているんだと思います。*1
なんで、こんなものを見ていたかというと、@IT のフォーラムで「Millisecondプロパティを使わずにミリ秒を書式化できますか?」という、まあよくある質問と回答みたいなやり取りがあったんですが、カスタム書式の説明がわかりにくい、という話なんですね。System.String.Format() もそうですが、.NET の書式指定文字列は判りにくいといか馴染みないというのは、よく耳にします。問題の日付時刻のカスタム書式の説明文ですが、日本語版では、
: (前略) H 24 時間形式の時間。1 桁の時刻で、先行ゼロが付きません。 HH 24 時間形式の時間。1 桁の時刻で、先行ゼロが付きます。 m 分。1 桁の分で、先行ゼロが付きません。 mm 分。1 桁の分で、先行ゼロが付きます。 s 秒。1 桁の秒で、先行ゼロが付きません。 ss 秒。1 桁の秒には、先行ゼロが付きます。 f 精度 1 桁の秒の端数。残りの桁は切り捨てられます。 ff 精度 2 桁の秒の端数。残りの桁は切り捨てられます。 fff 精度 3 桁の秒の端数。残りの桁は切り捨てられます。 : (中略) fffffff 精度 7 桁の秒の端数。残りの桁は切り捨てられます。 : (後略)
となっています。順序もこの通りで間に他の説明はありません。十分にわかりやすいとは言えないかもしれませんが、読めば結果が予測できるだけの情報があり、試行して確認できるような内容になっていると思うのでフィードバックするようなレベルではないかな、と思いました。
*1:確認していませんが