裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

年齢の計算

2022年09月19日 | ブログラミング

年齢の計算

生年月日 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)

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Julia で閏年判定

2022年09月19日 | ブログラミング

Dates パッケージの isleapyear() を使う

julia> using Dates
julia> isleapyear.([2020, 2022, 2100, 2400])
4-element BitVector:
 1
 0
 0
 1

パッケージを使わないなら以下のような関数を書く。

isleapyear2(y) = y % 400 == 0 || y % 4 == 0 && y % 100 != 0

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村