Rationalに出会った。

Rational – Rubyリファレンスマニュアル

Integer < Rational < Float の順に強いです。つまり other が Float なら、 self を Float に変換してから演算子を適用します。other が Integer なら other を Rational に変換してから演算子を適用します。冪乗は例外です。

初めて使ったのだけれど、Date同士を引き算してこれが返ってくるのはなんでだろう。日単位だからIntegerでもいいのになーとか反射的に思ったり。

irb(main):001:0> require 'date'
=> true
irb(main):002:0> Date.new(2008, 12, 21) - Date.new(1977, 12, 21)
=> Rational(11323, 1)
irb(main):003:0> (Date.new(2008, 12, 21) - Date.new(1977, 12, 21)) / 365
=> Rational(11323, 365)
irb(main):004:0> ((Date.new(2008, 12, 21) - Date.new(1977, 12, 21)) / 365).to_i
=> 31

ということで、もうすぐひとつ歳をとります。年々時間の体感速度が上がるなぁおい。

タイトルとURLをコピーしました