elm200 の日記

旧ブログ「elm200 の日記(http://d.hatena.ne.jp/elm200)」

年齢を小数で考える

誕生日を迎えるたびに、1歳、急に歳を取るのは、ショックが大きい。 それは年齢を整数で考えているからだ。離散的なのだ。 実際には時間は連続的に流れている。本来、年齢は小数で考えたほうがいい。 「私は、23.342歳です」「いまは、47.534歳です」等々。

そこで私は自分の年齢を小数で表示するプログラムを書いてみた。言語は Python

#!/usr/bin/env python3
from datetime import date


def calc_age(year: int, month: int, day: int) -> float:
    birthday = date(year, month, day)
    today = date.today()
    last_bd = date(today.year, month, day)
    if last_bd > today:
        last_bd = date(today.year - 1, month, day)
    base_age = last_bd.year - year
    fraction = (today - last_bd).days / 365
    return base_age + fraction


if __name__ == "__main__":
    print("{:.3f}".format(calc_age(1970, 6, 18)))

calc_age(year, month, day) のところをあなたの誕生日に変えていただければ、あなたの年齢も計算可能だ。 ちなみに私の今日の年齢は50.008歳だそうだ。早くも50歳を1/100近く消費してしまった。こうやって数字で見ると、「今日を一生懸命生きなければ」という気持ちになるというものだ。

調子に乗って、今日が今年の1月1日から何年経過したか計算するプログラムも書いてみた。もちろん、これは1未満の小数になる。

#!/usr/bin/env python3
from datetime import date


def calc_upto_today() -> float:
    today = date.today()
    first_day = date(today.year, 1, 1)
    fraction = (today - first_day).days / 365
    return fraction


if __name__ == "__main__":
    print("{:.3f}".format(calc_upto_today()))

このプログラムによると、今日6月21日は、0.471年ということらしい。今年も早くも半分近く終わってしまったことがすぐわかる。歳を取ると年月が流れるのが本当に早い。流されずに毎日を大切に生きていきたいものだ。