Solved

# Javascript to calculate age in years

Posted on 2007-11-15
1,848 Views
We use a hosted database product that allows us to create custom fields based on formulas.  I created one that should calculate someone's age based on their birthday.

Right now I have this:

round(ABS ({today}-{custitem_birthdate})/365.25)

It works except that the age gets rounded up if it's over 6 months through the year.  I can't run a full script, so I'm hoping there's some easy way to remove the decimal places without using 'round'.  Any help is much appreciated.
0
Question by:BasilFawlty001
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 4

LVL 1

Accepted Solution

Sahmeepee earned 350 total points
ID: 20292853
You could use Math.floor like:
``````Math.floor(ABS ({today}-{custitem_birthdate})/365.25)
``````
0

Author Comment

ID: 20293023
I can't seem to use that function.  Below is a list of math functions that are allowed.  Could I change the number to test and then trim the left 3 characters (decimal and decimal numbers)?

ABS ABS(n) returns the absolute value of n
ACOS ACOS(n) returns the arc cosine of n
ASIN ASIN(n) returns the arc sine of n
ATAN ATAN(n) returns the arc tangent of n
ATAN2 ATAN2(n1 { , | / } n2) returns the arc tangent of n1 and n2
BITAND BITAND(expr1, expr2) computes an AND operation on the bits of expr1 and expr2
CEIL CEIL(n) returns smallest integer greater than or equal to n
COS COS(n) returns the cosine of n
COSH COSH(n) returns the hyperbolic cosine of n.
EXP EXP(n) returns e raised to the nth powe
FLOOR FLOOR(n) returns largest integer equal to or less than n.
LN LN(n) returns the natural logarithm of n,
LOG LOG(n2, n1) returns the logarithm, base n2, of n1
MOD MOD(n2, n1) returns the remainder of n2 divided by n1
NANVL NANVL(n2, n1) returns an alternative value n1 if the input value n2 is not a number
POWER POWER(n2, n1) returns n2 raised to the n1 power
REMAINDER REMAINDER(n2, n1) returns the remainder of n2 divided by n1
ROUND (number) ROUND(n [, integer ]) returns n rounded to integer places to the right of the decimal point
SIGN SIGN(n) returns the sign of n
SIN SIN(n) returns the sine of n
SINH SINH(n) returns the hyperbolic sine of n
SQRT SQRT(n) returns the square root of n
TAN TAN(n) returns the tangent of n
TANH TANH(n) returns the hyperbolic tangent of n
TRUNC (number) TRUNC(n1 [, n2 ]) returns n1 truncated to n2 decimal places
0

Author Comment

ID: 20293028
That should have read "change the number to text".
0

Author Comment

ID: 20293147
I think that this might be in the wrong section.  I'm no programmer and can't tell the difference between languages.  This is using SQL functions on an oracle database.
0

Author Comment

ID: 20293462
Got it!  I just used floor(ABS ({today}-{custitem_birthdate})/365.25) without the math bit at the beginning.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

### Suggested Solutions

This article shows how to create and access 2-dimensional arrays in JavaScript.  It includes a tutorial in case you are just trying to "get your head wrapped around" the concept and we'll also look at some useful tips for more advanced programmers. …
This article discusses how to implement server side field validation and display customized error messages to the client.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
###### Suggested Courses
Course of the Month1 day, 19 hours left to enroll