99tools

Date Difference & Duration Calculator

runs in your browser

Days, weeks, months and years between two dates, working days, hours when times are given, and adding or subtracting from a date with month-end rules explained.

Calendar arithmetic: a day is always a day, and months count only once their day of the month is reached — the same rules as date-fns and Python’s dateutil.

Between two dates

Add or subtract

Direction

about this tool

Between two dates

The headline is the calendar breakdown — "2 years, 6 months and 11 days" — computed by the rule date-fns, moment and Python's dateutil share: count the whole months between the dates, counting a month only once its day of the month has been reached, then the days left over. So 29 February 2024 to 28 February 2025 is 11 months and 30 days, and to 1 March is a year and a day; 31 January to 28 February is 28 days with no month, because the 31st never comes. Below it are the totals that do not depend on any convention: days, weeks and days, working days, and when both times are given, hours and minutes.

Working days are Monday to Friday, counted strictly after the first date up to and including the second — Monday to the following Monday is five. Public holidays are not known. Each date is also described: weekday, day of the year, ISO 8601 week (weeks start on Monday; week 1 holds the year's first Thursday, which is why 1 January 2027 is in week 53 of 2026), and whether the year is a leap year.

The ISO 8601 duration (P2Y6M11D, PT1H30M) uses the same breakdown, with the clock part being the remainder after whole days.

Adding and subtracting

Add or subtract days, weeks, months, years or working days. Month and year arithmetic clamps to the end of a shorter month — 31 January plus one month is 28 or 29 February, 29 February plus one year is 28 February — and the tool says when it did that. Working days skip weekends: Friday plus one working day is Monday, and from a Saturday the first working day counted is Monday.

What it deliberately ignores

All arithmetic is on calendar dates in UTC, so a day is always a day; daylight-saving changes cannot make one 23 or 25 hours long. Times, when given, are compared as clock readings in the same place. Nothing here knows your time zone, public holidays or working hours other than Monday to Friday. For two moments in different zones, convert them first.

To convert either endpoint between formats, use the date format converter. If the two dates are in different zones, settle that first with the time zone converter.

For counting down live rather than measuring a fixed gap, the timer, stopwatch & countdown runs in the page.

questions

Why is 29 February 2024 to 28 February 2025 shown as 11 months and 30 days, not a year?
Because the calculator counts a month only once its day of the month has been reached, and the 29th never arrives in February 2025. That is the rule date-fns, moment and Python’s dateutil use, and it gives a full year on 1 March. Total days are unaffected: 365 either way.
How are working days counted?
Monday to Friday, counting each weekday strictly after the first date up to and including the second, so Monday to the following Monday is five. Public holidays are not known and are not subtracted.
What happens when I add a month to 31 January?
You get 28 February (29 in a leap year), the last day of the month, and the tool says so. Spilling into 2 or 3 March, which naive arithmetic does, is almost never what anyone means.
What is the ISO 8601 duration for?
It is the standard machine-readable form — P2Y6M11D means two years, six months and eleven days; PT1H30M is an hour and a half — accepted by many APIs, schedulers and databases. It uses the same calendar breakdown as the words above it.
Are time zones and daylight saving taken into account?
No, on purpose. Dates are compared as calendar dates and times as clock readings in the same place, so a day is always 24 hours. If the two moments are in different zones, use the time zone converter first.