先週のチャレンジに対する解答はこちらをご覧ください。
和暦は日本の元号に基づいた日本独自のカレンダーシステムです。
ご存知のように元号は天皇陛下が変わると変わりますが、新しい元号はいつもその年の初めから始まるわけではありません。
例えば 2019年5月1日は令和1年5月1日ですが2019年4月1日は平成31年4月1日です。
1868年から始まったとされる近代日本は現在5番目の時代に入っています。
今週のチャレンジでは以下の定義に基づいて和暦から西暦に、西暦から和暦にコンバートできる設定を含んだマクロを作成してください。
元号 |
元号名 |
開始日 |
終了日 |
M |
明治 |
10-23-1868 |
07-30-1912 |
T |
大正 |
08-01-1912 |
12-25-1926 |
S |
昭和 |
12-26-1926 |
01-07-1989 |
H |
平成 |
01-08-1989 |
04-30-2019 |
R |
令和 |
05-01-2019 |
*実際には明治と大正の最終日は次の時代の開始日でもありますが、今回は大正時代と昭和時代の開始日を前の時代の終了日の翌日に設定しています。
力作業になりましたが。
英語版で作ったマクロを日本語版に直してブラッシュアップしました。
基本的には、西暦、和暦の定義をマクロ内に入れ込んでいます(そのほうが実用的ですし)。
あと、おまけで境界値のテスト用データ作ってみました。
実用性をまったく考慮してないマクロになっております。
実用性が必要だと、西暦→和暦か和暦→西暦の指定ができて、範囲外エラーとフォーマットエラーと型違いエラーを出して、どのフィールドを変換対象にするか指定するんだろうと思います。そこまで行くと漢字のフォーマットで出力したいですよね。