Go Premium for a chance to win a PS4. Enter to Win

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1869
  • Last Modified:

Javascript to calculate age in years

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.
  • 4
1 Solution
You could use Math.floor like:
Math.floor(ABS ({today}-{custitem_birthdate})/365.25)

Open in new window

BasilFawlty001Author Commented:
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
BasilFawlty001Author Commented:
That should have read "change the number to text".
BasilFawlty001Author Commented:
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.
BasilFawlty001Author Commented:
Got it!  I just used floor(ABS ({today}-{custitem_birthdate})/365.25) without the math bit at the beginning.

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now