Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

日付データを和暦から西暦に揃える場合の課題事項

官公庁の情報システムが、日付データの内部表現を和暦ではなく西暦にするという方針が報道されました。 もちろん良い方針で、できるなら内部表現だけでなく画面や帳票に出力する日付も西暦にしてもらえると我々も楽になると思います(datepicker UI用のライブラリに、和暦に対応する改造が不要になるので、再利用性の点でも楽になります)。

ただ現時点において、官公庁や自治体の業務において「日付」を扱う際には、以下のような課題があるがために、わざわざ和暦を使っているわけです。 そのため、これらの課題をどう解決していくか?が今後のテーマになるのではと思います。

(1) 自分は昭和○年生まれだけど、西暦だと何年だっけ?という人

自分の生年月日を西暦で言えない人、結構いっぱいいます。だから手帳の最後に西暦和暦変換表がついてるわけですね。

(2) 西暦ってなに?という人

私の祖父母の代だとちょいちょい居ましたが、もうだいぶ少ないかも。

(1)にしろ(2)にしろ、システムというより業務運用上の利便性がテーマなので、西暦・和暦変換表を壁にでも掲示しておけばいいわけです。 ただ、「利用者に西暦・和暦変換表を読めない人が多そうな業務」「西暦・和暦変換表を読んだ上で、間違った年を書いてくる人が多そうな業務」「西暦・和暦変換表を掲示できない場所で行う業務」というのもあるわけです。そういう場合に窓口運用でカバーしてたら業務担当者はやってられないので、どうしても「和暦を入力するUI」が残っちゃうわけですね。

(3) 自分の誕生日は大正15年12月25日であって、昭和元年12月25日ではない、という人

法律上、大正の最後の一日と、昭和の最初の一日は重複しています(明治と大正も同じ)。そのため、1926年12月25日が大正か昭和かは、一律の判定ができません。 たとえばスポーツクラブの会員証には「自分は大正生まれ」と書いているのに、公的書類に書いてある誕生日が昭和だったりすると、「日付が間違ってる」と思う人は多そうですよね。 これで懲りたのか、昭和の最後の一日と、平成の最初の一日は重複しないようになってます!やったか!?と思いきや……

(4) 自分の誕生日は平成31年10月10日であって、[新元号]元年10月10日ではない、という人

「新元号制定後も、一定期間は『平成』と新元号を併用可能とする」とかいう話が出てるみたいですね。 これは(3)に書いたのと同じ問題を誘発するので、一見気が利いてそうに見えて、実は問題をややこしくしてるだけです。

(5) 自分の誕生日は11月31日である、戸籍抄本にも書いてあるから間違いない、という人

昔の公的書類は手書きなので、人的ミスでこういうケースがときどきあるんですね。

自治体で行われた戸籍の電算化の際に、誕生日が非実在日になっている人は、基本的に生年月日が実在日に修正されます。ただ、修正前の誕生日に思い入れのある人は、この修正を拒否できます *1 。修正を拒否した人の戸籍は、コンピュータで管理せず、紙で管理する(事故簿といいます)運用となっています。自治体の戸籍業務の場合はこれで大丈夫と思われます。なぜ大丈夫かは後述します。

問題になる可能性があるのは、戸籍のデータに基づいて郵便物の発送なんかを行う業務で、思いつくところとしては年金業務とかでしょうか(戸籍上の生年月日をもとに、給付開始日や金額が決まる)。 各戸へ郵送する書類を手作業で作るのは、いくら事故簿だけとはいえ数が多すぎてやってられません。なので年金業務の場合、誕生日が非実在日な人の情報を紙で管理するのは事実上不可能。どうしても「11月31日」をデータとして持ち、それを使って機械的に書類を作るほかないわけです。

先述の「戸籍業務の場合はこれで大丈夫と思われます」ですが、これは戸籍自体のデータを元に郵便物を発送する業務はないのでは、というのが根拠です。本籍地は現住所とは無関係だしね。 (ただ、国政選挙・地方選挙の投票所入場券の郵送では、選挙権の有無の判定に誕生日が必要なはず。住基の業務はよく知らないけど、住基の側で誕生日を実在日で持ってるのかな?)

(6) 自分の父親・母親は明治5年生まれだ、という人

戸籍を扱うシステムの標準仕様書が法務省から出てるんですが、年号コードとしてに「慶応」「元治」およびそれ以前の元号が扱える旨が書かれています。これは、法律上、戸籍のデータは150年間保存することが義務づけられているためです。

参考URL: http://www.moj.go.jp/content/000112224.pdf#page=443

ただ、実は明治6年より前は旧暦なので年を変換するだけの単純なロジックでは西暦から和暦への変換ができません(たとえば明治5年12月2日は、西暦では1872年12月31日です。また「2月30日」が実在日として存在します)。 これもやっぱり、データとして扱う場合に西暦に変換してしまうと都合が悪いので、和暦のまま保存してやる必要があります。

*1:変わった漢字を名前に使ってる人も同様