今が令和何年かわからない人へ捧げるアルゴリズム
上の画像は今年最も感動したアルゴリズムで、大学時代の同期に教えてもらったもの。
平成の間は、平成n年のnが(n = 自分の年齢)になっており、30歳までは割と自分の年齢もパッと出てきたのだが、
令和になると令和n年を求める際に、(n = 自分の年齢 - 30)という計算をする必要が出てきた上、自分の現在の年齢も段々思い出せなくなってきており、月に一回ほど、自分の年齢や令和n年を記載するタイミングで少しだけ困っていた。
そのような折、ふとしたLINEでの会話から冒頭のアルゴリズムを紹介され、いたく感動し、これはnote.comに書かなければと思い、GIMPで画像まで作ってしまった。
このアルゴリズムは2020年から2029年の間しか機能しない。
func TestSeirekiReiwa(t *testing.T) {
for seireki := 2018; seireki <= 2030; seireki = seireki + 1 {
// 西暦 下2桁
a := (seireki - 2000)
// 西暦 十の位
// 2024年の場合:2
// 2030年の場合:3
b := (a - (a % 10)) / 10
// 西暦 一の位
// 2024年の場合:4
// 2030年の場合:0
c := a - (b * 10)
// 令和 計算式
reiwa := b + c
fmt.Printf("seireki: %d, reiwa: %d\n", seireki, reiwa)
// => seireki: 2018, reiwa: 9
// => seireki: 2019, reiwa: 10
// => seireki: 2020, reiwa: 2
// => seireki: 2021, reiwa: 3
// => seireki: 2022, reiwa: 4
// => seireki: 2023, reiwa: 5
// => seireki: 2024, reiwa: 6
// => seireki: 2025, reiwa: 7
// => seireki: 2026, reiwa: 8
// => seireki: 2027, reiwa: 9
// => seireki: 2028, reiwa: 10
// => seireki: 2029, reiwa: 11
// => seireki: 2030, reiwa: 3
}
}
このアルゴリズムは2020年から2029年の間しか機能しないために、これをプログラマとしてシステムへ組み込むことはあり得ない。
プログラマとしてシステムへ組み込むことはあり得ないからこそ、多分自分では思いつかなかったし、今後思いつくこともなかったと思う。
言うまでもないが、令和n年は(n = 2024 - 2018)で算出可能だ。
しかしながら、2018という定数を覚えていられるだろうか。自分の年齢も覚えられないのに。無理だ。
アルゴリズムは日常生活で人間が用いる分であれば、2018などという中途半端な定数を記憶する必要なく、西暦のみを使用して和暦を求められるアルゴリズムは、2030年までの6年間という期限付きとはいえ、十分にメリットが大きい。1年しか使えないとしても重宝しそうだ。
今が令和何年かわからなくなったら西暦の下2桁を足してみてほしい。それが令和だ。
このアルゴリズムに出会った感動をどうしてもを紹介したかった。以上。
宣伝(他にこんな記事を書いています)
この記事が気に入ったらサポートをしてみませんか?