このページの本文へ

前へ 1 2 次へ

Windows Info 第159回

改元絡みでWindows 10の電卓アプリがバグってました

2019年02月10日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

レジストリの追加で新元号を設定可能
すでに準備はできているようだ

 Windowsには元号に対応する基本的な仕組みがあるので、レジストリを設定することで、新元号が有効になり今年の5月1日以降に新元号を表示できるようになる。具体的には、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras

に、新元号の開始日を名前として、元号名や略称をデータとする文字列値を書き込む。

レジストリを設定することで、新しい元号に対応できる仕組みになっている

 たとえば、

"2019 05 01" = 新元号名+"_"+元号略称(1文字)+"_"+元号ローマ字表記+"_"+元号ローマ字頭文字

とする。"_"は、半角のアンダーバー文字である。ただ、現時点では新元号名は不明なので、この設定項目は入っていない。たとえば、新元号が「■■」とすると、

"2019 05 01"="■■_■_Shikaku_Q"

となる(正式に発表されると、ここに元号が登録されるのだろう)。

 これで、前述の設定にあるカレンダーの表示を和暦にして、5月1日以降の日付を表示させると新元号となる。たとえば、カレンダーアプリで、今年5月を表示させると「■■元年5月」となった。

新元号をレジストリに設定すれば、カレンダーアプリの表示も変わる。また、1年を元年と表示する機能もある

 なお、今回の新元号の更新に合わせ、「1年」を「元年」と表示する機能が追加で組み込まれている。ただし従来は数字であった月の表示が漢字に変わると、問題を起こすアプリケーションが存在する可能性を考慮して、この元年機能はオフにもできる。これもレジストリを使って以下のように設定する。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\
名前:InitialEraYear
種類:文字列値(REG_SZ)
データ:
"1年" 最初の年を1年と表示
"元年" 最初の年を元年と表示(デフォルト値)

 これらの設定を使い、さまざまなアプリケーションを動かしてみる。これで、アプリケーションが新元号のアップデートに耐えられるかどうかがわかる。たとえば、タスクバーの時計だが、和暦表示にして新元号の表示には対応するが元年表示には対応していないようだ。

時計表示は「1年」のままで「元年」とは表示しない

 さて、問題の電卓アプリだが、Windowsの表示を和暦にすると、「日付の計算」の表示も和暦になる。ただし、元年表示には対応していない。これで、開始日として「平成31年4月2日」(2019年4月2日)を、終了日として「■■01年5月1日」(2019年5月1日)を選択すると正しく「4週,1日(29日)」と表示するが、開始日を「平成31年4月1日」とすると、その差を「1年」と表示してしまう。日数としては30日になっているので計算は正しいものの、表示の方が間違っているようだ。

平成31年4月2日(2019年4月2日)から同年5月1日までを計算させるとちゃんと差分を表示できる。しかし、4月1日からの計算では右の画像のように表示が間違ってしまう

 最初は、新元号関連のアップデートでバグったのかと思ってたが、新元号の設定とは無関係に昭和と平成の切り替わりでも同じように表示を間違う。

記事冒頭の画像でもわかるように、実は昭和と平成の切り替わりでも同じように間違っていたのだ

 つまり元号処理に関連してのエラーだったのである。しかし、前回の改元は30年も前のこと。その間にWindowsは急速に進化したが、結局、未経験の「改元」で電卓アプリがバグるというつまづきを見せた。そして、おそらくはほかにもいろいろとあるんじゃないかと思う。5月の連休明けに会社で悲鳴が上がるなんてことがないように願いたい。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン