和暦変換について質問です

こんにちは

正攻法(?)でいくなら

yourString="20220225"
strYear = yourString.Substring(0,4)
d = New DateTime(Int32.Parse(strYear),1,1)
ci = New System.Globalization.CultureInfo("ja-JP")
ci.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar

として

d.ToString("ggyy",ci)

で「令和04」が返ります。
あとは令和とR,平成とH等をReplaceメソッド等で置換すれば良いかと思います。

ただ、本件はおそらく多くても100種類程度しかないと思いますので

{“2022”,“R04”},{“2021”,“R03”}
といった変換テーブルを用意しておいて
それで直接変換してしまっても良いかもしれません

1 Like