-1

実生活により現実的な年齢を生成するコードを書きました。毎年、誕生日の日と月に合わせて年齢が上がると思いますので、技術的には長い年と短い年がありますが、私たち人間にとっては問題ではありません。これが私が思いついた解決策です。基本的にここで私の解決策を共有したかったのですが、誰かが共有するためのより良いアプローチを持っているかどうかも感謝しています.

def today= new GregorianCalendar()
def dob= new GregorianCalendar()
dob.set(Calendar.ERA, GregorianCalendar.AD )
dob.set(Calendar.YEAR, 1983 )
dob.set(Calendar.MONTH, Calendar.MAY )
dob.set(Calendar.DATE, 23)


userMonth=dob.get(Calendar.MONTH)
userDay=dob.get(Calendar.DATE)
todayMonth=today.get(Calendar.MONTH)
todayDay=today.get(Calendar.DATE)

if(todayMonth < userMonth && todayDay < userDay){
    println today.get(Calendar.YEAR)-dob.get(Calendar.YEAR)-1
}else{
    println today.get(Calendar.YEAR)-dob.get(Calendar.YEAR)
}
4

1 に答える 1

0

これは自由回答形式の質問なので、主観的でない質問に変更することを検討してください。

そうは言っても、私の意見はjoda-timeを使用することです。その場合、次のようなことができます。

import org.joda.time.DateTime
import org.joda.time.Years

def yob = new DateTime(1983, 12, 10, 0, 0).toDateMidnight()
def now = DateTime.now().toDateMidnight()

def years = Years.yearsBetween(yob, now).getYears()

println "Years: $years"

コードを他の誰かが使用できるように共有したいだけなら (ちなみにこれは素晴らしいことです)、おそらく gist を作成たいと思うでしょう。

[編集]ここに作成しました

幸運を!

于 2013-12-10T20:55:11.537 に答える