Date of birth calculator

Reconstruct a possible Gregorian birth date or range from recorded age or a total day count. Compare leap-day rules and export the result.

How to use

Reconstruct a possible Gregorian birth date or range from recorded age or a total day count. Compare leap-day rules and export the result.

Step 1

Match the recorded information

Fixed example

2023-02-280 / 1 / 0

Choose completed years, years/months/days, or a total calendar-day count. Do not invent missing age parts.

Step 2

Set the record date

Fixed example

2023-01-282023-01-292023-01-302023-01-31

Use the date on which the age was recorded, not automatically today. Choose the same leap-day rule as the original calculation.

Step 3

Review the uncertainty

Fixed example

01-28 / 29 / 30 / 312023-02-28

A result can contain one date or several possibilities. Keep the reference date and method when copying or downloading.

Practical uses

Interpreting a recorded age

A fictional record dated 2026-06-15 says only 25 years old. Choose Completed years only and enter that date, rather than leaving Today or filling missing months and days with zeros. Under the ordinary birthday rule, the matching window is 2000-06-16 through 2001-06-15, with both endpoints included. A later letter may narrow that window, but the age statement itself does not identify one birthday. Keep the record date alongside the range so someone reviewing the evidence can reproduce what the statement actually implies.

Building fictional test data

For a date-field test crossing leap day, choose Total calendar days, reference 2024-03-01 and count 1. The reconstructed date is 2024-02-29. Count 0 gives 2024-03-01, while count 2 gives 2024-02-28. These neighboring cases expose inclusive-count and leap-year bugs without using a real person's details. Save the count and reference with the generated fixture; changing the reference to Today later would produce different test data even though the day count had not changed.

Auditing a birthday guess

A fictional note gives one month exactly on 2023-02-28. Enter 0 years, 1 month and 0 days with that reference. The four matching birth dates, January 28 through January 31, each reproduce the age after month-end clamping. Check each in the age calculator with the same rule rather than selecting January 28 because it is first. If another record says the birth occurred after January 29, you can narrow the candidates using that evidence; the calculator itself does not rank the dates by likelihood.

A recorded age of 26 years producing a range of 365 possible birth dates
With a recorded age of 26 completed years on 1 January 2026, the possible birth dates run from 2 January 1999 through 1 January 2000. The tool preserves this uncertainty instead of presenting one guessed birthday.

Reverse age calculation without false precision

A date of birth calculation is not always a single subtraction. Calendar months have different lengths, month-end additions can clamp, and a years-only age describes a whole set of possible birthdays.

This tool has three modes: years, months and days; completed years only; and total calendar days. The first two modes use the same forward age rule as the age calculator, while total calendar days subtracts an integer day count from the reference date.

For full age inputs, the engine enumerates plausible candidate dates and keeps only dates that reproduce the entered age. This follows the civil-date model described in the Temporal.PlainDate documentation instead of pretending that every month can be inverted cleanly.

The result area shows the mode, reference date, reconstructed date or possible range, and candidate count. Exact-age mode lists ISO candidate dates when several dates match; years-only mode summarizes the matching span because a completed age in years naturally covers many dates.

01-28 / 29 / 30 / 312023-02-28
Fixed ambiguity example: January 28, 29, 30 and 31 can all map to February 28 after one completed month in 2023.

Choosing the right input mode

Use the mode that matches the evidence you actually have. Adding guessed months or days makes the output look more precise without making the source record more precise.

Years, months and days mode is for a full age statement such as 25 years, 4 months and 6 days on a known reference date. Completed years only is for ordinary statements such as 25 years old. Total calendar days is for an exact day-count convention.

The February 29 anniversary selector appears for the two age-based modes because it changes how forward ages are checked. Total calendar days mode does not use that selector because subtracting a day count is a different operation.

Which mode matches which evidence
ModeInputs shownWhat the result can honestly say
Years, months and daysYears, months, days, reference date and February 29 rule.One date or a list of matching dates that reproduce the full age.
Completed years onlyYears, reference date and February 29 rule.A possible birth-date range and candidate count for that completed age.
Total calendar daysTotal day count and reference date.One reconstructed date if the day count is valid within the supported range.

Why the engine checks candidates forward

Subtraction can erase information near month ends. Instead of subtracting a displayed age once and trusting that single answer, the engine checks every plausible birth date in the relevant year span.

Each candidate is sent through the same forward age calculation used by the age calculator. If the years, months and days match the input, the candidate is kept; if not, it is discarded.

This is why some inputs produce several matches and some produce no match. A no-match result is not just an error message; it can reveal an impossible combination such as a day count or month/day pair that the forward rule never produces for that reference date.

Forward checking outcomes
OutcomeWhat the page showsWhat to do next
One matchReconstructed birth date and weekday.Cross-check it in the age calculator if the result matters.
Several exact-age matchesRange, candidate count and ISO candidate dates.Keep all candidates unless another record narrows the birthday.
Years-only matchesPossible range and candidate count.Treat the range endpoints as included and do not infer every source was exact.
No matchNo birth date matches these inputs under the selected rule.Check the reference date, mode, rounded age and February 29 convention.

Worked example: January 28-31 ambiguity

Use reference date 2023-02-28 and age 0 years, 1 month, 0 days. Under the forward month-end rule, January 28, January 29, January 30 and January 31 can all reach February 28 after one completed month in 2023.

If a tool simply subtracts one month from February 28, it may return only January 28. That answer is not wrong as one possible date, but it is incomplete for this forward-checking rule.

This is the main reason the page can show a candidate list. It protects the user from a false exact date when the calendar operation has collapsed several starts into one observed age.

Four starts that reproduce the same full age
Candidate birth dateReference dateForward result
2023-01-282023-02-280 years, 1 month, 0 days
2023-01-292023-02-280 years, 1 month, 0 days
2023-01-302023-02-280 years, 1 month, 0 days
2023-01-312023-02-280 years, 1 month, 0 days

Records, leap boundaries and responsible use

The calculator uses Gregorian civil dates throughout the supported range. The US Naval Observatory calendar overview explains the Gregorian leap rule and why century years such as 1900 are common while 2000 is leap.

A recorded age is evidence to interpret, not a guarantee that a birth date can be recovered. The original note may be rounded, estimated, transcribed from another calendar or measured with a different February 29 convention.

Reference dates are limited to today or earlier because the tool reconstructs a birth date from an existing record. Whole years must be 0-130, months 0-11, days 0-31, and total calendar days 0-60,000.

Copy and download include the displayed summary, and a full-age result with multiple matches includes its actual candidate list. Share sends only the clean page URL, not the evidence or inputs. Keep your source note separately: a reconstructed summary is not a replacement for the record from which the age was taken.

Worked windows and day-count results

For a completed age of 25 on 2026-06-15, the latest ordinary birthday is 2001-06-15: that person turns 25 on the reference date. The earliest is 2000-06-16: that person will turn 26 the following day. Someone born on 2000-06-15 is already 26 and is excluded. This is why simply subtracting 25 from the reference year gives only one edge of the answer, not a reconstructed birthday.

A years-only range need not contain exactly 365 dates. For one completed year on 2021-02-28, the February 28 rule includes 2019-03-01 through 2020-02-29, or 366 candidates. The March 1 rule excludes the leap-day birthday at the upper end, leaving 365. The count comes from matching actual dates under the selected rule, not from assuming a standard-length year.

Total calendar days is a different kind of evidence. With reference 2024-03-01, counts 0, 1 and 2 produce 2024-03-01, 2024-02-29 and 2024-02-28 respectively. Each result is unique because moving an integer number of civil days back from a known date has one endpoint. The February 29 anniversary selector is not needed for that operation; the leap day is still counted as a calendar date.

Check the original counting convention before entering a total. If a source calls the birth date day 1 and the next date day 2, its inclusive label of 2 corresponds to a one-day difference here. Subtract one only when the source explicitly uses that convention. Do not convert a rounded age, a number of completed weeks or elapsed hours into an exact total-day input and expect the uncertainty to disappear.

Fixed reconstruction comparisons
InputsResultWhat changes the interpretation
25 completed years on 2026-06-152000-06-16 through 2001-06-15Both boundaries are candidates; the birthday is not singled out.
1 completed year on 2021-02-28; February 28 rule2019-03-01 through 2020-02-29; 366 candidatesThe leap-day birth has already reached its substitute anniversary.
1 completed year on 2021-02-28; March 1 rule2019-03-01 through 2020-02-28; 365 candidatesThe leap-day birth has not yet completed a year.
1 total day before 2024-03-012024-02-29One calendar-date step, not an elapsed-hours estimate.

What different records can and cannot prove

A precise-looking number is only as precise as the record behind it. A form field that says age 25 may have been entered after a birthday, before a birthday or from memory; the calculator can only model the statement you enter.

If the record says about 25, entering exactly 25 does not carry the word about into the math. Keep that uncertainty in your notes and avoid replacing an authoritative record with a reconstructed date.

When two records disagree, calculate their implications separately using each record's own date. Their overlapping candidate dates may be useful leads, but overlap is not proof that either age was accurately recorded. Do not average two reconstructed endpoints to manufacture a birthday. Look for a better source, a transcription error, a different calendar or an anniversary convention before narrowing the evidence.

Record wording and reasonable interpretation
Record wordingCalculator modeResponsible interpretation
25 years oldCompleted years onlyA possible birthday range, not one exact date.
25 years, 4 months, 6 daysYears, months and daysOne or more candidates that reproduce the full age.
10,000 days oldTotal calendar daysOne civil date if the count is exclusive and the reference date is known.
About 25No exact mode fits the uncertainty.Use a scenario only, and keep the word about in your notes.

Leap-day and century-year boundaries

The US Naval Observatory leap-year rule states the Gregorian exception for century years: divisible by 100 is not enough unless the year is also divisible by 400. That is why 1900 and 2100 are not leap years while 2000 is.

For February 29 births, the non-leap-year anniversary setting can change whether a candidate has already completed a year near the end of February or the start of March.

When the original convention is unknown, compare both February 28 and March 1. A one-day boundary difference can change the reconstructed range even when the reference date and age text are unchanged.

The calendar system behind an old record also matters. This calculator consistently applies Gregorian rules to every supported year; it does not identify regional calendar adoption or translate a Julian label. Preserve the original date text and any documented conversion before doing the reconstruction. Otherwise a result can be internally consistent while answering a question about the wrong civil date.

Leap-boundary checks before trusting a result
SituationWhy it mattersCheck
Birth may be February 29The selected non-leap-year anniversary changes forward age matching.Run both February 28 and March 1 rules.
Record is near February or MarchA leap-day convention can move the range boundary.Keep the rule beside the exported result.
Year is a century yearThe every-four-years shortcut can be wrong.Apply the Gregorian 100/400 exception.

Troubleshooting and preserving the candidate evidence

A validation warning and a no-match result mean different things. Blank or fractional age fields are not valid whole-number inputs; months must be 0-11 and days 0-31, even if a source writes a duration as 14 months. Do not silently reduce that source to one year and two months without knowing its age convention. A validly entered combination can still have no match under the forward rule.

For example, 0 years, 0 months and 31 days on 2023-03-01 has no match here. A January start far enough back to accumulate 31 days already completes a clamped calendar month by the reference. The warning is asking you to inspect the age statement, not to pick the nearest plausible birthday. In total-days mode, subtraction before 0001-01-01 likewise has no supported result.

Copy and Download keep the mode, reference date, result, count and relevant inputs. When full-age mode has several candidates, its exported summary also includes the ISO candidate list. Review that list, not only the earliest and latest dates, before discussing a possible birthday. The file clocktools-birth-date.txt is a labeled text summary, not a certificate or an automatic database update.

Share page sends only the link, with query string and fragment removed. It does not restore your source record or current calculation for another person, and there is no saved history. If clipboard or download access is blocked, manually record the candidate list and its assumptions. A failed guide load can be retried without resetting the calculator; it does not imply that the mathematical result failed.

Methodology

The calculator parses a valid Gregorian reference date that cannot be in the future. In years, months and days mode, it validates whole years 0-130, months 0-11 and days 0-31, then enumerates plausible birth dates and keeps candidates whose forward age exactly matches the input under the selected February 29 rule. In completed-years mode, it uses the same forward check and returns the full matching span and count. In total-calendar-days mode, it validates an integer from 0 through 60,000 and subtracts that many civil days from the reference date. The result reports one reconstructed date, a possible range or no match.

Limits

The tool reconstructs mathematical candidates under one Gregorian rule; it does not verify identity, replace an authoritative birth record or model words such as about, circa or estimated. Years-only input normally produces a range. Full age input can still produce multiple dates near month ends. The reference date must be valid and not in the future, and all supported dates remain inside years 0001 through 9999. Total days are calendar days, not hours divided by 24.

Corrections

For a reproducible issue, provide the mode, reference date, entered years, months, days or total days, selected February 29 rule, expected candidate dates and observed candidate dates. Use fictional inputs unless the real record is necessary. Before reporting a defect, check whether the source age was rounded, whether the reference date is correct, whether endpoints are meant to be inclusive and whether a different leap-day convention explains the difference.

Frequently asked questions

Why does completed years only show a range?
Because the birthday may fall anywhere inside the year-of-life window. Someone who turns 25 on the reference date and someone who turns 26 tomorrow both have 25 completed years, but different birth dates. Both displayed endpoints are candidates. Use an additional dated record to narrow the window; subtracting the age from the reference year alone identifies only part of the boundary, not the missing day and month.
Why can years, months and days show several dates?
A calendar month addition can collapse several starts onto its last day. On February 28, 2023, January 28, 29, 30 and 31 all have the same one-month age under this rule. The full-age mode lists each match rather than selecting one by preference. A detailed age statement narrows the possibilities, but does not undo information lost by the original calendar operation.
Are the range endpoints included?
Yes. The earliest and latest displayed dates both match. In full-age mode, use the explicit candidate list as the set of matches rather than assuming a displayed span establishes every date between its endpoints. The count is a number of matching dates, not a confidence percentage. The ordering is chronological, not a ranking of how likely each birthday is.
What does no match mean?
No supported date reproduces the input under the selected mode and rule. First check that the source date, not today's date, is entered. Then ask whether the age was rounded, whether missing parts were filled with zeros, and whether the anniversary convention matches. Do not replace a no-match result with the nearest date: that would be a different calculation and would conceal the inconsistency.
Can total calendar days reveal a birth time?
No. It recovers one civil date only when the reference date and counting convention are known. It does not contain a time of day, birthplace zone or UTC offset. A count derived by rounding elapsed hours divided by 24 may not be the same as calendar days, particularly across offset changes. Use the original civil-day count rather than treating an approximate duration as exact evidence.
Can I use a future reference date?
Not in this reconstruction tool: its reference must be today or earlier. Use the age calculator when the birth date is known and you want age at a future event. For an old age statement, choose the date on which it was recorded; using Today changes the implied birth-date window even if you leave the entered age unchanged.
Should I enter zero for months and days that were not recorded?
No: unknown is not zero. Use Completed years only when the source gives just a whole-year age. In full-age mode, zero months and zero days asserts that the birthday has just occurred under the selected rule, which is much more information than the source supplied. Zero is appropriate only when those components are genuinely known to be zero.
What is exported by Copy, Download or Share?
Copy and Download contain the summary with its reference, mode, count, inputs and matching result; a multi-candidate full age also includes its candidate list. Share contains only the page URL. Review the summary for personal information before sending it, and keep the source document separately. None of those actions turns a reconstructed possibility into an authoritative birth record.
Can I reconstruct a birthday if the reference date is unknown?
Not uniquely. Age is a relationship between a birth date and a reference date. If the note is undated, both ends are uncertain. You can explore scenarios using independently supported record dates, but the page does not estimate when the note was written. Do not quietly substitute Today and present the resulting range as evidence about the original record.
How should I narrow several matching dates?
Use independent evidence: a reliably recorded birthday, a dated registration or another age statement with its own known reference. Keep each original assumption visible and cross-check any surviving candidate with the forward age calculator. Do not select the first date, average the range or infer a probability from its size. Correcting an official record requires the relevant record process, not just a mathematical match.