Digital ESSAY「真珠じゃない」

坂口 裕「いやーうるう年だね」「オリンピックイでしたっけ？」「した ... かな？なんかしたらうるう年、って感じですかね、if 文的にヤーですね」「当面、4 で割り切れる年は気もする」「だからほら、4 年に 1 度じゃすると」「なんとなく覚えてるよ ... それがうるう年だね」「え？いやぁ ... その、あと誤差が大きすぎて、グレゴリオ暦になった365.2425 になる、ってやつだよね？ 1何年ぐらい生きてるおつもりで？」「えっ？

わけじゃないですかぁ。

万年で 3 日とか」「そうです、よく覚えてなんでそれ聞く？」「もしもですよ。あとグレゴリオ暦開始の時って、それまでの76 年ぐらい、すなわち 2100 年まで生きユリウス暦で 1582 年 10 月 4 日の翌日が、たじゃないですか、えらいえらい」「よせよるおつもりなら、4 で割り切れるとうるうグレゴリオ暦の 1582 年 10 月 15 日です2100 年は 400 で割り切れないけど、年ってのは間違いになるからです」「ん？

よ。そうやって苦労してきたわけですから、100 で割り切れるから、4 の倍数だけど平そうだっけ？」「それにですよ、単に 4 年ちゃんとグレゴリオ暦的アルゴリズムにし年なんです」「あーまーそうだね。でもさ、に一度うるう年にするんだったら、それっないといけないんです。ちなみに明治政府

今から 76 年も先の話だろ？我々は少なくて単なるユリウス暦じゃないですか」「ユがグレゴリオ暦を採用したときも、明治 5とも現役じゃないんじゃない？」「そう思う...」「ユリウス・カエサルのユリウス暦です

年 12 月 2 日 の 翌 日 が 明 治 6 年 =1873じゃないですか。

よ」「はぁ」「そもそもユリウス暦だと 1 年

年 1 月 1 日と、こっちは何十日も飛んでま来 年 っ て ど う い う 年 か ご 存 じ で す？」間が 365.25 日じゃないですか」「ええ、すが」「まあ ... そうかも ...」
「そうなんです。

「え？ 2025 年でしょ？令和 7 年 っ て こそうなるの？」「ユリウス暦は 4 年に一度4 で割り切れたらうるう年、だけど 100と？」「それだけじゃないんです。実は昭和うるう年を入れるわけです。365、365、でも割り切れたら平年、なんだけど 400

100 年なんですよ」「おぉっ !?... 昭和 !?」「コ365、366 ですから、足して 4 で割るとでも割り切れたらうるう年、ってのが定義ンピューターがそこらの会社に入るように

平均 365.25 日です」「... ああ、そうなるね」

ですね」「んー？えーと ... ？」「400 で割なったのって、昭和 40 年代ぐらいですか「一方平均太陽年は 365.24219 日ぐらり切れるならうるう年、100 で割り切れね。すでに 2 桁だし、当時は色々とストレいなんで ... あれ、この話って最近しませんるなら平年、いずれでもなく 4 で割れるなージも高価だったので、年を表すのに数字ー（赤面）」「だからですよ。

まとめてくださっていて大変参考になりますが、実際の販売価格
One Point BUZZ WORD

番町皿屋敷

は店舗によって微妙に異なっており、ランキングのまま購入すれば良いわけでもないというのが面白いところ。近所のスーパーではランチパックのツナマヨとタマゴがそれぞれ 120 円程度で売られており、点数シールが 1.5 点なので、価格効率でいうと 80

またこの季節がやってきてしまいました。ヤマザキ春のパンま円 / 点となかなかのパフォーマンス。というわけでこれを中心につりのお時間でございます。春のパンまつりは、ある一定数、点攻めてる ... んですけど、流石に 2 種類しかないと飽きるのも早数シールを集めると、かならず食器と引き換えてくれるというのいです。ロイヤルブレッドは 2.5 点なのでこちらも挟んでくるわがポイントです。すなわち、パンと食器を交換するお祭りというけですが、流石にそう簡単には消費できません。仕方なく価格効ことですね。大体の目安は通常 100 円ぐらいのパンが 0.5 点、率が下がることに目をつむり、飽きないように色々買っていくよ

パン一斤が 2 点ぐらい、ちょっと高めのパンが 1 点ぐらいというにするわけではありますが、なかなか苦難の道であります。価う感じでしょうか。食器一つと交換するには 30 点が必要なので格効率 80 円 / 点だと、食器一つあたり 30 点なので、皿一枚約すが、0.5 点のパンだと 60 個が必要となるわけです。100 円

2,400 円。もちろんこれに加えて 20 個のランチパックがついのパンなら 6,000 円。ところがよくよく見ていくと、パンによてくるわけで、1 日 2 パック消費するなら 10 日で皿 1 枚、毎っては値段の割に点数が高いのもあったりして、どのパンを主月皿 3 枚という計算になりますね。4 月 30 日まで合計 9 枚イ力にしていくかが一つの醍醐味になっているわけです。ここいらケるはず。なんというかこの、そこはかとなく溢れ出る番町皿屋

へんは「春のパンまつり研究家」たる「ゲムぼく。
」さんが毎年敷感。

20

FDI・2024・03

2 桁でやってたシステムとか多かったわけるコードが潜んでるなんて疑うわけないじ

年月日時分秒を渡すと unix time を返す関ですよ。西暦 2 桁だと 1999 年で打ち止ゃないですか。

数なんですけど、これがややこしいんです

めですが、昭和 2 桁なら 2024 年まで使そもそも、普通日付関係のライブラリはっ」「あーそうなの」「月はゼロベースなんえるということで採用された場合も多いよ

十分こなれたものをつかうわけで、自前ですけど、問題は年なんです。この逆関数、うです」「あ、わかるわーそれ。四半世紀寿でチンケな実装があるとか夢にも思わなunix time から年月日時分秒を返す関数は、命が違うと考えるよね、やっぱり」「でしょ？

いわけですよ」「チンケ ... うん、まあ ... そ年を 1900 年からのオフセットで返すんそういう意味だと、うるう年のスペシャル

う ... か ...」
「そうするとどうなると思いまですよ。1980 年なら 80、2000 年なら年は 2000 年だったわけです。1600 年

す？多分ですね、2099 年の 12 月とか、100 って感じです」「ほいほい」「だったら、に続いて 2 回めの、100 の倍数なのにう2100 年の 1 月とかに、2 月の予定とかをtimelocal（）もおんなじパラメータ食わせるう年だったスペシャル例外。逆に言うと、表示させようとしてアレって気づくんです

ると思うじゃないですか。違うんですよこ

あと 399 年ぐらいは『100 で割り切れたよ。2100 年 2 月 29 日があるって」「あれがー！」「ふーん」「確かに 20 世紀の頃

ら平年、4 で割り切れたらうるう年』でイ～ ... ありそう」「時すでに遅しですよ。だはそれで良かったんです。いろんな解説本ケちゃうわけです」って、おそらく実際のデータが投入されてにも 1900 からのオフセット食わせりゃい「わかる～。どうせそのころそのシステムて、今後の予定を投入しようとしたところいとか書かれてたんですけど、厳密には違担当してないし、リプレースもあるだろうで発覚するわけですから。そりゃ一大事でうんですよー」

し、面倒だから if 文減らすの、わかる～」す。コードを片っ端からレビューして何が「あーこりゃこりゃ」「これがですね、何も「で、昭和 100 年ですよ。そりゃプレースおかしいのかさぐるわけでしょ？それ数十考えず 4 桁の正の数字を渡せば、それがそホルダとして 2025 年に破綻することはわとか数百人日のレベルでかかりますよ。まのまま西暦として解釈されるんです。まあかってても、そんな先にシステムが使われしてや投入済みのデータを修正する必要もそりゃいいですよね？」「よいしょっ」「でてるかどうかなんてわからないじゃないであったりして、ものすごいトラブルになりもゼロ以上 99 以下の値を与えた場合、『今』すか。大体当時のヒトって、オーウェルのます」「あ ... なんかくらくらしてきた」「その前後 50 年における下二桁として解釈さ『1984』が、『2001 年宇宙の旅』が、アれもこれも、ほんの数行書くのを怠ったかれるんですよ！たまたま 20 世紀の最後のトムの誕生日である 2003 年 4 月 7 日が、らじゃないですか。というわけで、常日頃方は 1900 を引いた値と一緒だったですけ

どれも遠い未来だったんですから」「まあそからちゃんとしたアルゴリズムを使うようど、21 世紀に入ってからポロポロと問題うだよね」「でもですよ、一度作られてちゃにしないといけないんですよぉぉぉ！」がでてきてるんですウゥゥゥ」「あらよっと」んと動くソフトって、なかなか退役させら「... うん。... まあ ... そうだね」「大体です「信じられます？こんな大事な情報、いろんれないんですよ。そりゃそうですよね、ちね、この二桁でよしとするのは大変問題なな入門書で『とりあえずの仕様』が載ってゃんと動かすまでに膨大な手間がかかってんですよ」「そうなの？」「そりゃコンピュたんです！これって 4 で割ってうるう年問ますから、おいそれとはリプレースできな

ーターの初期においては 2 バイトが無視で題じゃあありませんか !? そうですよねっ？

いです」「あーそうだよね。触らぬ神に祟りきない大きさだってのは分かるんですけど、いかがですかっ」「あー ... うん、まあそうなしっていうか、動くならさわるなっていでも西暦は 4 桁以上なの明らかじゃないでかも」「ですよね！だから、ちゃんとしましうか」「そうするとですよ、じゃああと 76

すか。頭 2 桁は向こう数十年で変わるのがょう！するべきなんですっ！」「そうだね

年も使われないだろうからって 4 で割り切明らかなんだから、4 桁で処理すべきでし... ところでさ、perl って何？」「しゃるとたれたらうるう年ってやると、未来のユーザたよ。っていうか、桁数制限すべきじゃな

くびこーん」

ーが 2100 年に立ち往生するかも知れないいです。任意桁数扱えるべきなんですウゥ

わけじゃないですか」「まあそうかもね」「だゥゥゥ」「まあね。そうなんだろうけどさ。

いたいですよ、うるう年のアルゴリズムな一万年後って我々まだ人類かな？」「それだ

んて 16 世紀からこっち変わってないわけ

けじゃないんですっ」「聞いてないなこりですから、よもやそこに手抜きやバグがあゃ」「timelocal（）ってのが perl にあって、Hiroyasu Sakaguchi株式会社 IMAGICA Lab.

21

FDI・2024・03