年齢計算をしたいのですが上手くいきません。
TimeやDateを利用した方法だと無理なのでしょうか?
(1970/1/1以前も計算したいのでDateを使いたい。Timeは検証用)
※ Timeはここ(http://www.sakalab.org/3zemi06/no6.html)にあった方法を使用

# Time
year,month,day = 2000,10,10
t = Time.now - Time.local(year, month, day)
print (t / (60 * 60 * 24 * 365.2425)).floor

# Date
require 'date'
year,month,day = 2000,10,10
bd = Date.new(year,month,day).mjd
now = Time.now
now_d = Date.new(now.year,now.month,now.day).mjd
print ((now_d - bd) / 365.2425).floor

今日を'07/10/10とするとTime版だと2000/10/10生まれだけ6歳と1歳若くなります。
Date版だと1999年以前の10/10生まれは正しいようですが、2000以降の10/10生まれは1歳若いです。
(1899年以前も'99〜'00前後がズレるようです。)
どうして一部だけズレるのか不明です。
一部のみ+1は複雑になるのでTime/Dateは使わず「現在年−誕生年=年齢(誕生日がまだなら-1)」の方がいいのでしょうか?