新元号の影響 Delphi編


2019/4/17 追加

エンバカデロ・ニュースレターより、そのまま引用しました

タップ(クリック)で拡大します。

・要点

Delphi RTLによる和暦の使用:
TFormatSettingsとDateTimeToStringなどを使った和暦による表示、あるいはStrToDateなどによる和暦文字列の読み込み(変換)などは、OSの新元号対応によって、そのまま改元に対応しますので問題はありません。

独自の和暦対応:
一方、独自の和暦/西暦換算を行っている場合には、コードの修正が必要になります。

 

・ニュースレターからのリンク

元号が改正された場合の西暦と和暦の相互変換について

 


以下は管理人調べで、実際の処理だけでなく書籍を参考にしたものなので、当方は一切責任を負いません。自己責任でお願いします。

また、当然ではありますが、元号つまり和暦の日付で入力・表示している箇所が影響を受けます。

■Delphi編

SysUtils.FormatDateTime関数

・対処法:なし

・対処できない理由:OSまたはDelphiのユニットに依存するため。OSまたはDelphiの修正プログラムを期待または自作の処理で対応

 

影響を受ける FormatDateTime関数 の指定子

e :和暦の年を表示: ex. 5

ee :和暦の年を表示。1桁の場合ゼロが付加: ex. 05

g :元号を1文字で表示: 明、大、昭、平

gg :元号を表示: 明治、大正、昭和、平成

ggg :元号を表示: 明治、大正、昭和、平成

 

管理人が確実に影響を受けると認識した指定子

「gge」や「gg e」として使用し、ex.「昭和63」や「平成 31」と表記する処理。


 

各元号の開始日から終了日で判定している処理がある場合

当方はこの処理をしていないので、各元号の期間のみを提示します

明治:1868/1/25-1912/7/30

大正:1912/7/30-1926/12/25

昭和:1926/12/25-1989/1/7

平成:1989/1/7-2019/4/30