I wrote a piece of code that generates the age more realistic to real life. I assume that we increment our age every year right when we meet the day and month of our birthday, so technically some years are longer and some are shorter, but to us people it doesn't matter. Here is the solution I came up with, I basically wanted to share my solution here, and I also appreciate if someone has a better approach to share.
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)
}