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

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

20220225 とある場合、R04という具合に変換する方法を教えて頂けませんでしょうか?※R04は令和4年といういみです。

20211225 は R03に変換
20201101 は R02に変換
20191011 は H31に変換 ※ここはR01ではなく、H31にしたいです。
20190904 は H30に変換
以降は続きます。
※日付は変動するので、左から4つの文字変換したいです。

ご教示よろしくお願いいたします。

1 Like

Where can I please refer the calendar type you are referring to, which will help me understand and provide a solution.

1 Like

エクセルのデータテーブルになります。

1 Like

Hey @spaceforce

Could you please share it

Thanks
#nK

1 Like

こんにちは

正攻法(?)でいくなら

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

いつもありがとうございます。

質問なのですが、
d.ToString(“ggyy”,ci) の d とは何にあたるのでしょうか?

こんにちは

以下の部分になります。DateTime型で、当該年の1/1になります。(日付によらず平成31年を返したいとのことでしたので)

d = New DateTime(Int32.Parse(strYear),1,1)
1 Like

返信ありがとうございます。

できました!

目が疲れすぎて、d と b を勘違いしてしまいました。

いつもありがとうございます!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.