年齢の計算
生年月日 year, month, day として,ある時点 year2, month2, day2 での年齢を求めるのに以下のようなプログラムを書いていた。
関数定義
age(year, month, day, year2, month2, day2) =
year2 - year - (month > month2 || (month == month2 && day > day2))
実行
age(2020, 9, 19, 2022, 8, 29),
age(2020, 9, 19, 2022, 9, 18),
age(2020, 9, 19, 2022, 10, 18),
age(2020, 9, 19, 2022, 9, 19)
実行結果
(1, 1, 2, 2)
日付を yyyymmdd のような 8 桁の整数で受け渡しすると,以下のように簡単なプログラムになる。
ちゃんと上のプログラムと同じように月と日の大小順を考慮することになっている。
関数定義
age(ymd, ymd2) = (ymd2 - ymd) ÷ 10000
実行
age(20200919, 20220829),
age(20200919, 20220918),
age(20200919, 20221018),
age(20200919, 20220919)
実行結果
(1, 1, 2, 2)