 ShowAll Questionssorted byDate Posted Ravi Dutt Sharma

# Calculate the age in years and months using Formula field

I have DOB (API Name : BirthDate__c) and I want to calculate age in years and months. I have created two formula fields

```Age in years

FLOOR((TODAY()- BirthDate__c )/365.2425)```

```Age in months (remaining months)

FLOOR(MOD((TODAY()-BirthDate__c),365.2425)/30)```

If date of birth is 11 Aug 2013 and todays date is 11 Aug 2015, this gives result as 1 year 12 months. Instead the result should be 2 years 0 months. Best Answer chosen by Ravi Dutt Sharma William Tran
Ravi,

Here's how I would approach it:

FORMULA for YEAR:
IF (  (MONTH(Today()) +12 - MONTH(BirthDate__c ))>=12, YEAR(Today())-YEAR(BirthDate__c), YEAR(Today())-YEAR(BirthDate__c) -1)

FORMULA for MONTH:
IF (  (MONTH(Today()) +12 - MONTH(BirthDate__c ))>=12,  (MONTH(Today()) +12 - MONTH(BirthDate__c ))-12, (MONTH(Today()) +12 - MONTH(BirthDate__c )))

Thx Prabhat Kumar12
Use following formula

IF(Today()<BirthDate__c , "Check the Date!",

TEXT(IF(YEAR(Today())=YEAR(BirthDate__c ),0,IF(YEAR(Today())-YEAR(BirthDate__c )=1,IF(MONTH(Today())=MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),0,1),IF(MONTH(Today())<MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),1,0),1)),IF(MONTH(Today())-MONTH(BirthDate__c )<0,YEAR(Today())-YEAR(BirthDate__c )-1,IF(MONTH(Today())=MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),YEAR(Today())-YEAR(BirthDate__c )-1,YEAR(Today())-YEAR(BirthDate__c )),YEAR(Today())-YEAR(BirthDate__c )))))) & " year(s), " &

TEXT(IF(YEAR(Today())=YEAR(BirthDate__c ),IF(MONTH(Today())=MONTH(BirthDate__c ),0,IF(MONTH(Today())>MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),MONTH(Today())-MONTH(BirthDate__c )-1,MONTH(Today())-MONTH(BirthDate__c )),0)),IF(MONTH(Today())=MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),11,0),IF(MONTH(Today())>MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),MONTH(Today())-MONTH(BirthDate__c )-1,MONTH(Today())-MONTH(BirthDate__c )),IF(MONTH(Today())<MONTH(BirthDate__c ),IF(DAY(Today())<DAY(BirthDate__c ),11-(MONTH(BirthDate__c )-MONTH(Today())),12-(MONTH(BirthDate__c )-MONTH(Today()))),12-(MONTH(BirthDate__c )-MONTH(Today()))))))) & " month(s)"

) Ravi Dutt Sharma
Hi Prabhat,

Thanks for the reply. Instead of so many checks, can we not use below?

```Age in years

FLOOR((TODAY() + 1 - BirthDate__c )/365.2425)```

```Age in months (remaining months)

FLOOR(MOD((TODAY() + 1 - BirthDate__c),365.2425)/30)``` William Tran
Ravi,

Here's how I would approach it:

FORMULA for YEAR:
IF (  (MONTH(Today()) +12 - MONTH(BirthDate__c ))>=12, YEAR(Today())-YEAR(BirthDate__c), YEAR(Today())-YEAR(BirthDate__c) -1)

FORMULA for MONTH:
IF (  (MONTH(Today()) +12 - MONTH(BirthDate__c ))>=12,  (MONTH(Today()) +12 - MONTH(BirthDate__c ))-12, (MONTH(Today()) +12 - MONTH(BirthDate__c )))

Thx
This was selected as the best answer Ravi Dutt Sharma
Thanks William