Skip to tool

Categories

Date / Local utility

Age calculator

Calculate calendar age in years, months, days, and total days.

On-device prototype

About the Age calculator

To work out an exact age: open the age calculator, pick the birth date and the date you want the age on, then select Calculate age. It returns completed years, months and days, along with the total number of days between the two dates.

Age is counted the way birthdays are counted: complete years first, then complete months since the last birthday, then the days left over. The months figure is therefore always between 0 and 11, and the days figure counts from the most recent monthly anniversary. When stepping by months would land on a day that does not exist in the target month, the day is clamped to the end of that month — which is exactly how a 29 February birth date is handled in a year that has no 29 February. Both dates are treated as whole UTC days, so time zones and clock changes cannot shift the result, and there is no time-of-day input. The birth date must not be later than the comparison date, but the comparison date itself may be in the future.

Questions people ask

How does it handle a 29 February birthday?
It counts the anniversary on 28 February in years that have no 29 February. Someone born on 2000-02-29 is reported as 25 years old on 2025-02-28 by this tool.
What exactly do the months and days figures mean?
Months are complete calendar months since the last birthday, so that figure is never more than 11, and days are the days elapsed since that monthly anniversary. A birth date of 2000-01-15 measured on 2026-09-05 gives 26 years, 7 months and 21 days, with 9,730 total days.
What happens if someone was born on the 31st?
The monthly step is clamped to the last day of a shorter month. One month after 31 January is 29 February in a leap year and 28 February otherwise, and the days count then restarts from that clamped date.
Can I calculate an age on a future date?
Yes. The second date can be any date on or after the birth date. Only the reverse is refused: if the birth date falls after the comparison date the tool reports that rather than returning a negative age.
Does it account for the time of birth?
No. Both inputs are calendar dates only, and the finest unit in the answer is a whole day. The total-days line is a straight subtraction of calendar days, so it includes every leap day in between.
Local JavaScript · No third-party trackers · Formal multi-browser egress proof pending

About this age calculator

Pick a birth date and target date to compute exact chronological age broken down into years, months, and days, alongside total cumulative days, hours, and minutes. The algorithm accounts for varying month lengths and leap years according to the Gregorian calendar, executing entirely on your local machine.

This tool computes exact human and document age by evaluating Gregorian calendar boundaries rather than naive division by 365.25. It correctly handles February 29 leap years, daylight saving time adjustments, and month boundaries where month lengths alternate between 28, 29, 30, and 31 days. Results are provided in both composite calendar notation and single-unit totals.

Runs in this tab — no uploadFree, no account, no watermark

Step by step

  1. 1Enter birth dateSelect the date of birth using the date picker or by entering year, month, and day. Dates in the future relative to the target date are rejected.
  2. 2Set target calculation dateThe target date defaults to current date in your local timezone, but can be adjusted to any past or future historical date for milestone planning.
  3. 3Examine chronological breakdownReview the composite age cards displaying years, months, and days, alongside total lifespan statistics including elapsed weeks, days, and hours.
  4. 4Copy age summaryClick copy to grab the formatted age summary string for documentation, employment verification, or medical records.

Gregorian calendar arithmetic and leap year precision

Calculating calendar age requires borrowed-day arithmetic matching legal birth definitions. Simply dividing elapsed milliseconds by 365 days produces significant drift over a human lifespan due to leap years. This calculator evaluates calendar intervals: if the target day is less than the birth day, days are borrowed from the preceding calendar month based on that specific month’s real length (28, 29, 30, or 31 days).

Timezone and midnight normalization

To avoid date shifting caused by UTC offsets and Daylight Saving Time (DST) transitions, all dates are evaluated at local calendar midnight. This guarantees that crossing a midnight threshold in any global timezone yields consistent, repeatable day counts.

Cumulative duration metrics across multiple units

In addition to the primary years-months-days breakdown, the calculator computes total lifespan metrics: total elapsed days, total elapsed weeks and days, total hours, and total minutes. These alternative representations are frequently required for insurance actuarial calculations, legal statutes of limitations, and scientific study durations.

Zero upload security guarantee

Every response from this site is served with a Content Security Policy whose connect-src directive is set to none. That is not a promise in marketing copy; it is an instruction to your browser, and the browser is the one enforcing it. While this page is open it cannot open a connection to anywhere — not to this site, not to anyone else — so there is no path by which your document could be uploaded, not by a bug, not by a future change, not by a script that should not be here. e2e/egress-proof.spec.ts asserts the served header and then tries to send data out by every route a page has and requires each attempt to be refused, and it runs on every build.

The second half of the guarantee is that the code has nowhere to send anything from. lib/tools/local-source-policy.test.ts reads every source file under lib/tools, workers, components and app on every test run and fails the build if any of them contains fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon or a peer connection, or even a remote address written down in a comment. A tool here cannot acquire an upload by accident, because the file that would have to contain one cannot be committed.

Private local calculation

Computations run directly on your own device using WebAssembly, Web Workers, and modern browser APIs including Web Crypto and TextDecoder. There are no server queues, no background telemetry, and no temporary cloud files created. Large operations remain responsive by offloading heavy parsing and conversion tasks to dedicated worker threads, ensuring the browser UI never freezes during intensive document and data processing tasks.

Questions people ask

How are leap years handled for birthdays on February 29?
For individuals born on February 29 in a leap year, age increments on March 1 in non-leap years according to standard international civil registry conventions.
Can I calculate age as of a specific date in the past or future?
Yes. Change the "Age at the Date of" field to any date following the birth date to calculate historical age or forecast future retirement milestones.
Why does naive millisecond division produce inaccurate age figures?
Because years have either 365 or 366 days and months range from 28 to 31 days, dividing raw time by an average constant causes errors of several days over multi-decade intervals.
Is my birth date transmitted over the internet?
No. All date calculations run exclusively within client-side JavaScript in your browser with zero network transmission.
How does the tool determine the number of days in the borrowed month?
The borrowing algorithm queries the exact calendar length of the month immediately preceding the target date, accurately accounting for whether that specific month was a 28, 29, 30, or 31-day month.