新元号・令和の影響 Delphi編


●SysUtils.FormatDateTime関数について

2019/5/11 追記

Windows Update後なら、異常になることはありませんでした。OSに依存しているからだと思われます。

 


●Delphiのカレンダーコントロールについて

2019/5/10 追記

Windows 10 で、自動Windows Update 後には令和が表示されました。

 

2019/5/15 追記

Windows7 で、KB4499164 (マイクロソフト)をWindows Updateでインストールしたところ、Windows 7 上で令和の表記が可能となりました。

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

 

その他の情報について

リンク先 → 日本の元号変更に関する Windows の更新プログラムについて

 

Delphiで作成したプログラム内のカレンダーコントロール

※ただし、コントロールパネルの「日付と時刻の設定」→「カレンダーの種類を『和暦』」にしている場合に限られます。

初期値の『西暦』の場合は「令和1年」ではなく「2019年」と表記されます。

※また、当方は新元号に対し、Delphiのアップデートはしていません


2019/4/17 追加

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

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

・要点

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

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

 

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

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

 


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

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

■Delphi編

SysUtils.FormatDateTime関数

・対処法:なし

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

※「その関数の一般的な使用なら Windows Updateによって元号を正しく表示しているので、問題はない」と私は判断しています(個人の意見です)

 

 

影響を受ける 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



総合メニューへもどる