LoginSignup
3
0

More than 5 years have passed since last update.

和暦年が1桁で来ることを想定していないバグ

Posted at

TL;DR

改元対応は、新元号だけじゃなくて、和暦が1桁で来ることへの対応も必要・・・かもしれない

要約

  • 改元時に顕現するバグがあった
  • 和暦年が1桁で来たら発現するバグだった

本文

バグの下地

「全銀フォーマット」の日付項目の仕様

  • 年月日をYYMMDDの6桁の「数値」と定義している。「6桁の数値」である。
  • 年は和暦年である。
  • 元号を識別する情報はない。

バグの内容

  • 年月日を、6桁の「文字列」として扱い、年は1~2桁、月は3~4桁、日は5~6桁、として取得している。例:「010502]は、年=01、月=05、日=02、となる。
  • 実はその前に、「数値型」に対する処理として先頭のゼロがtrimされていた。
  • 和暦年が1桁だと、6桁であるはずの文字列が5桁で入ってきてしまい、おかしなことになる。例:「010502」は、先頭のゼロがtrimされて「10502」となり、年=10、月=50、日=2、となる。

テストしたら検出されるはずだけどね

適切なテストをしてれば摘出されているはずです。でもゴミコーダーがやっつけ実装したなら・・・?前任者がゴミコーダーだったなら・・・?
私は・・・前任者がゴミコーダーだったようです・・・

補足的なもの

全銀フォーマットはXML版が登場していて、そっちは和暦が廃止されている

諸悪の根源である、数値6桁での和暦年月日は、旧フォーマットに成り下がっている。
これから作るシステムは、XML版を採用すべき。
https://www.zenginkyo.or.jp/abstract/efforts/smooth/xml/

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0