It's been a while since I'd use or suggest a scalar function as a solution to a problem.
Instead, this should do it.
SELECT dob,
CASE WHEN DATEADD(YYYY, DATEDIFF(YYYY, dob, GETDATE()), dob) > GETDATE()
THEN DATEDIFF(YYYY, dob, GETDATE()) - 1
ELSE DATEDIFF(YYYY, dob, GETDATE())
END
FROM (VALUES(CAST('19851115' as date)), ('19850131'), ('19850302'), ('19840302'))x(dob) --Sample dates