DateTime日付から元号を取得するサンプルです。
サンプル
例)DateTime型日付から元号を取得する
using System;
using System.Globalization;
//DateTime日付を生成
DateTime dt = DateTime.Parse("2021/03/28");
//和暦の使用準備
JapaneseCalendar jc = new JapaneseCalendar();
//元号を区分で取得する
int gengoKbn = dc.getEra(dt);
Console.WriteLine(gengoKbn);
//元号を名称で取得する
string gengoArr = {"明治", "大正", "昭和", "平成", "令和"};
Console.WriteLine(gengoArr[gengoKbn -1]);
結果
5
令和
JapaneseCalendar#getEra()の戻り値
getEraの戻り値は元号を意味する数値です。数値の意味は以下の通りです。
値 | 意味 | 期間 |
---|---|---|
1 | 明治 | 1868/1/1~1912/7/29 |
2 | 大正 | 1912/7/30~1926/12/24 |
3 | 昭和 | 1926/12/25~1989/1/7 |
4 | 平成 | 1989/1/8~2019/4/30 |
5 | 令和 | 2019/5/1~ |
備考
- 元号はJapaneseCalendar#getEra()を使用すると簡単に取得できます。
- しかし取得できるのは元号の区分なので、元号の名称を取得したい場合は上記サンプルのように区分から名称に置き換える処理が必要です。
- 1867年12月31日以前の日付の場合は、ArgumentOutOfRangeExceptionが発生します。