Date Calculator
Calculate age from a date of birth, find the interval between two dates, or add and subtract time from any date.
Loading Date Calculator… If nothing happens, please enable JavaScript.
Frequently asked questions
Is any data sent to a server?
How is the age calculated — exactly?
What happens with leap-year birthdays (29 February)?
Why does the interval not match a simple day count divided by 365?
What does 'add 1 month to 31 January' produce?
Can I calculate the number of working days between two dates?
Can I enter dates in the past to calculate historical intervals?
How accurate is the 'days until next birthday' figure?
What time zone does this use?
What is the maximum date range supported?
About Date Calculator
Date arithmetic is one of those things that looks simple but hides surprising complexity. How old is someone born on 29 February in a non-leap year? How many working days are between two dates? How do you add three months to 31 October without landing in December? This calculator handles the everyday cases cleanly: age from a date of birth, the exact interval between any two dates, and adding or subtracting years, months, and days from a given date.
Age calculation comes up constantly — filling in forms that ask for age in years and months, verifying someone meets a minimum age requirement, calculating years of service, or simply satisfying curiosity about how many days you have been alive. The result here breaks the age down into years, months, and days, and adds the total in days and weeks for perspective. It also shows how many days remain until the next birthday.
The date interval tool is useful whenever you need to know the exact duration between two events: time elapsed since a contract started, days between a diagnosis and a follow-up appointment, how long until a deadline, or just how long ago something happened. The result is expressed at multiple granularities — total days, total weeks, and a breakdown of years plus remaining months plus remaining days — so you can use whichever unit fits the context.
The add/subtract tool solves the opposite problem: given a starting date and a duration, what is the resulting date? This is handy for calculating due dates, notice periods, warranty expiry, subscription renewals, and any situation where you need to count a precise number of months or days forward or backward without mentally navigating months of different lengths. All calculations run entirely in your browser — no data is sent anywhere.
Why date arithmetic is harder than it looks
The Gregorian calendar, introduced by Pope Gregory XIII in 1582, was designed to correct the drift in the Julian calendar by making century years non-leap years unless divisible by 400. This means 1900 was not a leap year but 2000 was — a subtlety that famously caught many programmers off guard during Y2K preparation. The rules seem simple until you start implementing them: a month can have 28, 29, 30, or 31 days depending on which month it is and whether the year is a leap year, making 'add one month' a fundamentally ambiguous operation in edge cases.
The idea of a universal standard for measuring time is surprisingly recent. Before the introduction of standard time zones in the late 19th century, every town kept its own local solar time. The expansion of railways made this chaos untenable — a timetable that said '10:00' meant something different in every city. The UK adopted a single standard time (Greenwich Mean Time) in 1847; the US and Canada followed with a system of four railroad time zones in 1883. The International Meridian Conference in 1884 standardised Greenwich as the prime meridian, laying the groundwork for the coordinated time system we use today.
In software, date handling is notorious for edge cases that break code years after it was written. The Unix timestamp, which counts seconds from 1 January 1970, will overflow a signed 32-bit integer on 19 January 2038 — the 'Year 2038 problem', sometimes called Y2K38. Systems still running on 32-bit time representations (embedded devices, legacy databases, older Linux kernels) will misread that moment as 13 December 1901. The fix is to use 64-bit timestamps, which won't overflow for approximately 292 billion years.