2つの日時の差を求める

日数

♪もういくつ寝るとお正月

groovy:000> new Date(new Date().year +1,0,1) - new Date()
===> 9
groovy:000> use( org.codehaus.groovy.runtime.TimeCategory) { new Date("2010/1/1 0:0:0") - new Date()  }.days +1
===> 9

年齢

今日は天皇誕生日ですね。1933/12/23生まれ

groovy:000> (int)(use( org.codehaus.groovy.runtime.TimeCategory) { new Date() - new Date("1933/12/23")  }.days /365)
===> 76

27759 daysになってるから、yearsを使うと0になってしまう。
年に方法があるのか?
うーむよくわからん。。

生年月日から年齢を計算する簡単な計算式を使うとすると以下

groovy:000> (int)((20091223 - 19331223)/10000)
===> 76

時間

新年までの残り時間
現在 20:38です

groovy:000> diff = use( org.codehaus.groovy.runtime.TimeCategory) { new Date("2010/1/1 0:0:0") - new Date()  }; diff.days*24 + diff.hours
===> 195

新年までの残り秒

groovy:000> diff = use( org.codehaus.groovy.runtime.TimeCategory) { new Date("2010/1/1 0:0:0") - new Date()  }; diff.days*24*60*60 + diff.hours*60*60 + diff.minutes*60 + diff.seconds
===> 703307