And another option is using calculator.net with the scrape integration:
scrape:
- resource_template: >-
{% set now_str = now().strftime('%Y-%m-%d %H:%M:%S.%f %z') %}
{% set today_year = now_str[:4] %}
{% set today_month = now_str[5:7] %}
{% set today_day = now_str[8:10] %}
{% set date_str = states('input_datetime.blaidd_s_birthday') %}
{% set year = date_str[:4] %}
{% set month = date_str[5:7] %}
{% set day = date_str[8:10] %}
https://www.calculator.net/age-calculator.html?today={{ month }}%2F{{ day }}%2F{{ year }}&ageat={{ today_month }}%2F{{ today_day }}%2F{{ today_year }}&x=Calculate
scan_interval: 60
sensor:
- name: Blaidd's Age
unique_id: blaidd_s_age
select: 'p.verybigtext'
value_template: >-
{% set age_part = value.split('or')[0] %}
{% set age_string = age_part[age_part.find('Age:') + 4:].strip() %}
{{ age_string }}