1. Two questions, two calculators
Almost every date question is one of two shapes. Either you have a date and an interval and want the date you land on — what is 90 days from today? — or you have two dates and want the distance between them — how many days until 25 December? Both are above: the first console shifts a date, the second measures a span.
Neither one needs a submit button. Both recompute as you type, and both start from today's date as your own device reports it, because a statically served page cannot know what day it is until it reaches your browser.
The two are not interchangeable, and the difference is not pedantry. Shifting by three months and shifting by 90 days land on different dates in most of the year, and a span measured inclusively is one day longer than the same span measured exclusively. Both traps have their own section below.
Two neighbouring questions need different arithmetic and are answered elsewhere. A span shorter than a day — 09:40 to 17:15, or a duration added to a clock reading — is hours, minutes and seconds rather than whole days, which is what the time calculator works in. A span you want expressed as years, months and days at once is a clamped month step rather than a day count, and that is the age calculator.
2. How the interval is applied, and why the order matters
When you add years, months, weeks and days at once, they are not applied in a single step.
Years and months are converted to a number of months and applied first; weeks and days are
then added as a flat count of days. That is the same order spreadsheets use for
EDATE, and the same order the JavaScript Temporal API uses, so a
result here matches what those produce.
Order matters because month steps are clamped. Add one month to 31 January and there is no 31 February to land on, so the result is the last day of the month you arrive in — 28 February, or 29 February in a leap year. Nothing is carried into March.
| Starting date | Interval | Result |
|---|---|---|
| 31 January 2026 | + 1 month | 28 February 2026 |
| 31 January 2028 | + 1 month | 29 February 2028 |
| 31 January 2026 | + 1 month, then + 30 days | 30 March 2026 |
| 31 January 2026 | + 30 days, then + 1 month | 2 April 2026 |
The last two rows are the same arithmetic in a different order and they differ by three days. If a contract says “one month and 30 days”, it is worth knowing which order the other party has in mind.
3. Three months is not 90 days
A calendar month is 28, 29, 30 or 31 days long, so a fixed number of days only matches a number of months by coincidence. The gap is widest across the long-month stretch in summer:
| From | + 90 days | + 3 months |
|---|---|---|
| 1 May 2026 | 30 July 2026 | 1 August 2026 |
| 1 December 2026 | 1 March 2027 | 1 March 2027 |
| 1 January 2026 | 1 April 2026 | 1 April 2026 |
| 1 July 2026 | 29 September 2026 | 1 October 2026 |
Two of those agree and two are two days apart. This is why visa rules, return policies, probation periods and statutory deadlines are usually written in one unit or the other and never both — “90 days” and “three months” are different promises. Use the unit the document uses, and put the interval in that field rather than converting it yourself.
4. Inclusive and exclusive counting
Ask how many days there are between Tuesday and Friday and there are two defensible answers. Three, if you count the gaps between the dates. Four, if you count the days themselves. The span console gives you both: Days between is the exclusive count and Inclusive count is that figure plus one.
- Exclusive is what you want for durations and deadlines: nights in a hotel, days of interest accrued, age, “within 30 days of receipt”.
- Inclusive is what you want when every date is itself a unit being counted: days of leave taken, days of a festival, chargeable days on a rental where the first and last day both count.
The Weekdays and Weekend days tiles are inclusive counts — both endpoints are counted if they fall on the relevant kind of day. From Tuesday 8 September 2026 to Friday 11 September 2026 that is four weekdays and no weekend days. The hours, minutes and seconds tiles are derived from the exclusive day count, since those are durations, which means they treat both endpoints as midnight. Two clock readings on the same day are a span of zero days here; measure that on the time calculator instead.
5. What the extra fields on the result mean
The tiles under each result are all derived from the date itself rather than looked up.
- Day of year — 1 to 365, or 1 to 366 in a leap year. 1 March is day 60 in a common year and day 61 in a leap year, which is exactly why leap years break naive day-of-year arithmetic.
- ISO week — the ISO 8601 week number. Weeks start on Monday and week 1 is the week containing the first Thursday of January, so 1 January can legitimately fall in week 52 or 53 of the previous ISO week-year. A year has 52 or 53 ISO weeks.
- Leap year — a year is a leap year when it divides by 4, except century years, which must divide by 400. 2000 was a leap year; 1900 and 2100 are not.
- Days moved — the flat number of days between the date you typed and the date you landed on. Handy for checking a clamped month step: adding one month to 31 January moves you 28 days, not 31.
- Leap days in the span console counts the 29 Februarys inside the range, which is why a span in days is never the span in years multiplied by 365.
Dates are held as year, month and day integers and compared as whole-day counts, never as timestamps. Nothing here depends on a timezone offset, so no daylight saving transition can move a result by an hour and round it into the wrong day. Valid years run from 1000 to 9999; the Gregorian calendar itself was not adopted everywhere until much later, so treat dates before the eighteenth century as arithmetic rather than history.
6. Date Calculator FAQs
What date will it be in 90 days?
Put 90 in the Days field of the first console and leave the start date on today. The result gives the full date, the weekday it falls on, the ISO week and the day of the year. Note that 90 days and three months are usually different dates — 90 days from 1 May 2026 is 30 July, while three months is 1 August.
How many days are there between two dates?
Enter both dates in the second console. It reports the exclusive count (the difference between the two dates) and the inclusive count (that figure plus one, counting both endpoints), along with weeks, whole calendar months, weekdays, weekend days and the equivalent hours, minutes and seconds.
Does the order of the two dates matter?
No. If you put the later date first the span is still counted forward from the earlier one, so you get a positive figure either way rather than a negative number to interpret.
What happens when you add a month to 31 January?
You get 28 February, or 29 February in a leap year. Month steps are clamped to the last valid day of the month you arrive in rather than overflowing into the next month. This matches the EDATE function in spreadsheets and the Temporal API in JavaScript.
Are weekends and public holidays excluded?
The Weekdays tile counts Mondays to Fridays only, inclusive of both endpoints, so weekends are excluded there. Public holidays are not, because they differ by country, region and year. Count the weekdays here, then subtract the holidays that apply to you.
Why is my age in days not my age in years times 365?
Because of leap days. The span console shows how many 29 Februarys fall inside the range, and each one adds a day that the ×365 shortcut misses. For a full breakdown of a birth date, the age calculator does the same arithmetic with birthday-specific output.
Is anything I type sent to a server?
No. The calculator is a single client-side script. Dates are parsed and compared in your browser as integer day counts, nothing is uploaded, logged or written to storage, and the page keeps working offline once it has loaded.