とりあえず、流行のようなので使ってみました。> しょうがない
実際問題として、しょうがない、では済まないのです、失言も、プログラムも。
とあるシステムが、データにタイムスタンプをつけています。それはGMTの00:00:00からの2秒間隔のチックになっています。なので、丸一日で86400秒÷2=43200チックということになります。ということは、これは16bit幅の変数に収まるわけで、unsigned shortで扱うように、先人がコーディングしていました。
このタイムスタンプは、そのシステムから直接読むのではなく、ライブラリを通して読んでいるのですが、どこかの時点でこのライブラリの仕様が変更されていました。このタイムスタンプを直に返すのではなく、053210
- タイムスタンプを実時間と比べて、データの賞味期限をチェックするときのタイムスタンプの処理。
- タイムスタンプを格納している変数幅
前者は、あからさまに計算がおかしくなるので、すぐに気づきました。ts×2としていたものを t = (ts / 10000) * 3600 + ((ts / 100) % 100) * 60 + (ts % 100)としてやらねばならないわけです。
そして、運悪く、日本時間の 9:00-15:30とかだと、後者の問題は発覚しないので、
ライブラリの仕様変更が、シモジモのものにまで通知されていなかったので、こういうオチとなりました。はぁ、丸々二日かかっちゃったよ、気づくまでに oTL
コメント