はじめに
西暦和暦いずれかを出す場合はそんなに苦労しなかったんですけど、
どっちも出したいってなったとき地味に難易度高かったので出し方を記録として残します。
結論
まず最初に西暦年月日曜日出してから、JapaneseCalendarに差し替えて和暦部分を置換します。
今回の実装
変数の中身
CultureInfoをJPにしているのは、曜日を出したいためです。
各代入の中身
- 代入_日付1
hiduke_DateTime.ToString("yyyy(和暦年部分)年MM/dd(ddd)",Cinfo)
- 代入_JapaneseCalender
- ここは右辺左辺両方掲載しています。
- ここでJapaneseCalenderを代入しないと、次の代入のggyyが「西暦23」になってしまうためです。
CInfo.DateTimeFormat.Calendar = New System.Globalization.JapaneseCalendar
- 代入_日付2
hiduke.Replace("和暦年部分",hiduke_DateTime.ToString("ggyy",CInfo))
実行結果
無事に
- 西暦
- 和暦年
- 月日
- 曜日
が出力できました。
今回の実装-NGのすがた-
JapaneseCalenderを代入しなかった場合を見てみます。(JapaneseCalender部分コメントアウトしただけ)
実行結果-NGのすがた-
こうなります。「令和」も「5年」でもなく、西暦(20)23という値が出力されてしまいました。
参考文献
おわりに
最後のNGのすがたは自分が個人的にはまったところです。
似たような現象ではまってしまった誰かに届けば幸いです。