メインコンテンツへスキップ
見出し画像

馬鹿な閏年計算(2100年まで4で割れる日が閏年)

    昨日閏年計算でシステム上のトラブルが相次いだというニュースが有りました。

    免許更新で免許証が発行できないとか、考慮漏れというお粗末な話が有りましたが、実は私も迷惑をこうむった一人です。

    この話は別途するとして、閏年に関して30年ほど前に考察したことが有ります。
    当時見た内容と元となる数値に違いが有ればと思い、数値に関してのみWEB上から参照させて頂きました。

    はじめに(まず閏年とは何)

    グレゴリオ暦でいう1年を今現在は365.2425日とされており、これを元に計算されています。
    今現在はという表現が気になる方もいるとは思いますが後に説明します。

    単純に365.25日であれば4年に1度が閏年になるという話ですが、365.2425日なので微妙に違います。

    閏年計算を教えて頂きました

    学生の頃は特に気にしたことは無かったのいですが、社会人(エンジニア)になってから閏年計算について、先輩からこんこんと閏年計算について説明されました。

    ・西暦を4で割り切れたら閏年とする
    ・しかし、100で割り切れたら閏年としない
    ・でも、400で割り切れたら閏年とする

    これをシステム上にマクロを入れて閏年計算するようにしている。
    との話でした。

    2000年は閏年、2100年は閏年ではない

    この話を聞いて凄いと一瞬だけ思いましたが、この計算で言えば、2000年は閏年、2100年は閏年ではないというのが分かるかと思います。

    直ぐに感じたことは、2100年まで単純に4で割れれば閏年で良いでは無いかという話です。
    このシステムが100年以上使われるのであれば、確かに必要な計算だとは思いましたが、100年以上使われるシステムなど考えられない。

    知識は知識として必要かも知れないけれど違うんじゃないの?
    と思った次第です。

    それよりもシステム上のデータベースに登録された西暦が2桁しか無い方が問題だというのが脳裏に浮かびました。

    エンジニアに罪は無いけれど

    初期に西暦を2桁としてシステム化された方に問題があるかというとそうとも言い切れません。

    このシステムが2000年まで使われるとは考えて無かったのだと思います。
    しかし、後輩はそのままそのシステムを使用し続け、追加なり更新なりしていきます。

    他の関連したシステムに関しても4桁にすることなく、2桁のままにシステム化していきます。

    何れ誰かが直すであろうという後任に期待をするという考え方です。
    特に顧客に導入したシステムだったりする場合は、この改修するのには金が掛かります。

    その費用負担は誰がという問題も出てきます。
    こうして、間違ったシステム化が永遠と続き、2000年問題なるものが発生しました。

    馬鹿な閏年計算

    当時、馬鹿な閏年計算として馬鹿にしていましたが、今正しい閏年計算を入れていないと2100年の閏年計算に影響を及ぼすと考えても良いかも知れません。

    後任はずっとコピーし続けていきますので。

    現在はOS側や言語側で計算してくれるので、そんな問題も無いのかも知れないのですが、考慮漏れというのは何ともお粗末です。

    閏年の計算は正しいか

    グレゴリオ暦では1年を365.2425日とされていますが、今現在の1年は約365.24219日と微妙に違います。

    今しばらくは、
    ・西暦を閏年で割り切れたら閏年とする。
    ・しかし、100で割り切れたら閏年としない。
    ・でも、400で割り切れたら閏年とする。

    この計算で問題ありません。

    しかし、微妙な違いで数千年後には1日の違いが出てきますが、どういう対応をするのかは方針が定まっていません。

    昔は400日以上あった

    単体サンゴの化石には、年輪だけでなく日輪もあり、その数を数えると3億5000年前は1年が400日以上あったとされています。

    一年とは、太陽の周りを1周する公転と、地球自体の回転(自転)の二つが関係します。
    ※その上で地軸が少しずれているので、日本では四季というのが感じられる訳ですが

    公転自体も少しずつ遅くなり、自転自体も少しずつ遅くなっている、その上で年間の日数が少なくなっています。
    ※公転自体は安定していると言われています、遅くなっているというのは私の仮説です
    ※真空状態とは言え、少なからず公転も自転も摩擦を受けていると考えています
    ※公転は遅くなると太陽に近づき、近づいたことで速度が増し、またそこで公転をするので安定しているのかもしれません

    単純に3億5000万年前から35日少なくなったとすれば、1000万年で1日少なくなったと言えます。

    仮定ばかりしてみた

    1.公転スピードが同じで自転スピードが落ちた場合、年間の総時間は同じですが、1年の日数が少なくなり、1日の時間が長くなります。

    2.公転スピードが落ちて自転スピードが同じ場合、年間の総時間が長くなり、1年の日数は多くなり、1日の時間は同じです。

    この考え方からすると、公転スピードが落ちる以上に、自転スピードの方が落ちているので、1の方が優先されていると言えます。

    この仮説の条件下で、公転スピードが落ちて、自転スピードも落ちた場合は、年間の総時間が長くなり、1年の日数は少なくなり、1日の時間が長くなっているのではと言えます。

    ただ、公転のスピードについては、遅くなると太陽に近づき、近づく際にスピードが増し、太陽と近づいたところで今よりも楕円を描いて公転しなおすので、1の考えだけで良いのかも知れません。
    ※公転が遅くなり太陽に近づきすぎた場合、何れ太陽にぶつかることになりますが、ぶつかる前に人類は暑さで絶滅するくらいの長い時間が掛ります

    さいごに

    私は天文学者でも数学者でも有りませんが、過去や今現在にとらわれていてもいても仕方がないと思っています。

    閏年の計算に使用されているグレゴリオ暦の1年を365.2425日とするも、今現在の1年は約365.24219日とするも、通用出来るのは今であり、将来は更に少なくなります。

    もしかするとグレゴリオ暦を作ったグレゴリウス13世が調べた時(1582年当時)は365.2425日だったのかも知れません。なので今現在という言葉を使用しました。

    閏年の計算ばかりに目が行きがちですが、1日が24時間というのも少しずつですがズレが生じているはずです。
    人間の一生程度では感じることは出来ないでしょうが、1日が少しずつ長くなっています。

    何時の日か、1日を24時間、1時間は60分、1分は60秒というのは変えず、1秒という短い期間の時間が少し長くなる気がします。
    24進法、60進法が人間には都合が良いので、秒の時間だけが変わると見ています。

    最後までお読みいただきまして、ありがとうございます。

     
     
    IT企業の技術者を経て営業部長や役員を経験し、只今自宅警備員をしながら本を出版しようと原稿を作成中です。 14万文字を超える原稿となりましたが、ジャンルが統一されておらず、語尾もめちゃくちゃ、助けてくれるライターさんがいたら、友達になって下さい。( ノД`)シクシク…

    あなたへのおすすめ