试图在groovy中计算年龄

Tih*_*hom 2 grails groovy date

我有一个日期对象,举行一个人的生日.我的代码看起来像:

def getAge(){
    //birthday, birthYear, birthMonth, birthDayOfMonth are class level properties
    def c= new GregorianCalendar(birthYear, birthMonth-1, birthDayOfMonth)
    birthday = c.time
    //What do I do now?
}
Run Code Online (Sandbox Code Playgroud)

我需要回报这个人的年龄.我如何在Groovy中做到这一点?年龄只需要是整数.

Jac*_*ack 6

您可以使用当前日期创建一个日历,并使用年份来计算年龄:

def now = new GregorianCalendar()
def fake = new GregorianCalendar(now.get(Calendar.YEAR), birthMonth-1, birthDayOfMonth)
return now.get(Calendar.YEAR) - birthYear - (fake > now ? 1 : 0)
Run Code Online (Sandbox Code Playgroud)

假日期用于了解生日是否已在当年通过,如果不是那么你必须将1减去年份之间的差异.