ForHosting KIT · Home, food & hobbies

Date of birth calculator

Someone who is 30 on 20 March 2026 was born on 20 March 1996 at the latest and no earlier than 21 March 1995. Enter a whole-year age and the as-of date to get the estimated birth date and its one-year window. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Age
30
Reference date
2026-03-20
You get
Date of birth
1996-03-20
Birth year
1,996
Birth month
3
Birth day
20

This date of birth calculator estimates a person's birth date from their completed age on a given reference date. You enter a whole-number age in years and an as-of calendar day written as an ISO date. The engine subtracts that many civil years from the reference day on the proleptic Gregorian calendar and clamps the day of month when the destination month is shorter, so the twenty-ninth of February minus one year in a common year lands on the twenty-eighth, not on an invented twenty-ninth. A whole-year age is a one-year window, so the response also names the earliest and latest birth dates consistent with that age. A negative age or a fractional age is rejected as invalid input because this page answers only completed years.

What an estimated date of birth from age means

An estimated date of birth from age is the civil calendar day you get by walking a completed whole-year age backward from a stated as-of date. People search this landing when they have an age on a form, a census row, a school roster, or a medical note, and they need a reproducible birth date rather than a guess typed by hand.

The contract is deliberately the inverse of a chronological-age page: those tools take a known birth date and a reference date and return years, months, and leftover days; this tool takes the years and the reference date and returns the birth date those years imply. Because only completed years are known, the true birth day can sit anywhere in a one-year window. The earliest consistent day is the day after the previous anniversary: subtract one more year and add one civil day.

February twenty-nine is the only day that can vanish. Subtracting years from a leap-day reference into a common year clamps to the twenty-eighth of February instead of inventing a twenty-ninth that the calendar does not have. Pair this page with a years-months-days age tool when you already have both dates; keep this page when the search is “what is the date of birth if they are this old today.”

Back-solve a birth date from a form age

Turn a whole-year age collected on a roster or application into a reproducible ISO birth date for the as-of day you already have.

Census and genealogy age windows

Recover the conventional birth day and the earliest–latest window from an age recorded on a census night or passenger list.

How is the date of birth estimated from age?

Provide a non-negative whole-year age and an ISO reference date.

Why is there an earliest and a latest birth date?

A whole-year age is a one-year window. Someone who is 30 on 20 March 2026 was born on or after 21 March 1995 and on or before 20 March 1996. The estimate is the latest of those days, as if their birthday is the reference day.

What happens if the age is negative or not a whole number?

Date of birth from age is defined only for a non-negative integer age in years.

How is 29 February handled?

Subtracting civil years from a leap-day reference into a common year clamps to 28 February. Subtracting into another leap year keeps 29 February.

What does the date of birth calculator cost?

It is free in your browser on this page.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/life/date-of-birth

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/life/date-of-birth \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"age":30,"reference_date":"2026-03-20"}'
{
  "age": 30,
  "reference_date": "2026-03-20"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "life.date_of_birth",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

year_min1
year_max9999
age_min0
age_max9998
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Successful API requests cost $0.002; failed validation is not charged.

What an estimated date of birth from age means

The conventional estimate, returned as date_of_birth and echoed as latest_date_of_birth, is the day the person would have been born if their birthday is the reference day itself — reference date minus age civil years.

How age and the reference date are read

Zero is valid and means the estimated birth date is the reference date itself. The twenty-ninth of February is accepted only in a leap year; the thirty-first of April and a two-digit year are rejected. Failed validation is never billed. POST a JSON body with two required fields. The completed age lives in age and may also arrive as years, age_years, or y. It must be a non-negative whole number from zero through nine thousand nine hundred ninety-eight. JSON integers and digit-only strings are accepted; a leading plus or minus is parsed, but a minus that yields a negative age fails. Fractions such as thirty point five, scientific notation with a remainder, empty strings, Infinity, and NaN fail with invalid_input that names the field. The as-of day lives in reference_date and may also arrive as as_of, on, date, or reference. It must be a string that matches four digits, a hyphen, two digits, a hyphen, and two digits, and it must name a real Gregorian day in the inclusive year range from one through nine thousand nine hundred ninety-nine. On success the body echoes the normalized age and reference date, the estimated date_of_birth, the split birth_year, birth_month, and birth_day, the latest_date_of_birth (identical to the estimate), the earliest_date_of_birth when that bound still falls inside years one through nine thousand nine hundred ninety-nine, and a formula string that documents the civil-year subtract and the plus-one-day earliest bound. If subtracting the age would push the estimated year before year one, the request fails rather than emitting a year zero. Each successful item costs $0.002.

Where a date-of-birth-from-age estimate is used

Genealogy and census projects back-solve a birth year and a conventional birth day from an age recorded on a census night or a passenger list, then keep the earliest and latest bounds so a later researcher can see the whole window. Product teams that already ship a chronological-age calculator still need this landing: searchers type date of birth calculator and date of birth from age, not age in years months and days, and they arrive with an age plus an as-of date rather than two complete dates. Classroom units on calendars use the leap-day clamp as a worked example: twenty-nine February two thousand twenty-four minus one year is twenty-eight February two thousand twenty-three, not an illegal twenty-ninth. Because the implementation is a pure parse engine, the work runs entirely in your browser on this page, and through the API each successful lookup costs $0.002 while a negative or fractional age does not consume balance. Nothing is stored after the response returns. This page is not a weekday-of-birthday tool, not a generation-cohort labeler, and not an exact civil-age breakdown from two known dates.

Deterministic fixtures without a clock

Seed tests and demos with a birth date derived from age so goldens never depend on the host Date object.

Read the full KIT documentation →