和暦表示の部分を使っていて、気づいたのだが、
cultureInfo_.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar
dim value datetime = New DateTime(1868, 12, 1)
value.ToString("gy年M月d日", cultureInfo_)
で和暦が取得できる.
元号の切り替え時期は 次のようなので,きちんと処理してくれる。
1868/09/8 ~明治:
1912/07/30~大正
1926/12/25~昭和
1988/01/08~平成
9999/01/01は平成8011年1月1日になる.
1968/09/07日以前は 例外が起こる。
逆に,和暦から西暦は
Dim dateTime As DateTime = dateTime.Parse("平成15年08月08日")
で可能。
こちらは元号切り替時期の月/日による例外は発生しない.
存在しない,年は例外となる. 明治五年壬申十一月九日で太陰暦と太陽暦が切り替わっているので,
それ以前の月日は和暦と西暦は不一致のはず.
和暦から西暦の変換ルーチンにイマイチ感が残ったのと, 1968/09/07日以前の例外が異様に遅いのも気になった
。