Days between two dates

How long between two dates: in years, months and days, in total days, in hours, and in business days.

Start
End

Times are optional: without them, the difference is counted in whole days.

How it counts

Years, months and days
The largest number of whole months that fits between the two dates, then the remaining days. From 31 January to 28 February is one month: the end of a shorter month counts as a full month, as in dates/add. Months do not all have the same length, so “1 month and 3 days” is only meaningful from a given start date.
Counting the end date
By default, the end date is not counted, as in a subtraction: from Monday to Friday is 4 days. For a stay, a leave or a rental, the last day often counts too: tick the box to get 5.
Business days
Monday to Friday, from the start date up to the day before the end date (or the end date itself if it is counted), minus the public holidays of the chosen list that fall on a weekday. A holiday on a Saturday or a Sunday changes nothing.
Hours
Times are read on the clock, without a time zone: a day always lasts 24 hours. Across a change to or from daylight saving time, the real elapsed time differs by one hour.

Transparency

Everything is computed in your browser, by the scripts listed below. Nothing you type leaves this page.

Enforced by your browser
This page's Content Security Policy allows a single destination, the site's audience measurement (connect-src https://stats.r-no.fr, see below), and forbids any form submission (form-action 'none'), so even a bug could not send what you type anywhere. You can read the policy at the top of the page source.
Audience measurement
Like every page of the site, this one counts its visit with Umami, installed on R-no’s own server (stats.r-no.fr). It receives the address of the page, without parameters or anchor, the site you came from (its domain only), your browser, system, language and screen size, and the country, region and city deduced from your IP address, which is not kept. It never receives what you type, nor the result of the tool. No cookie, nothing stored in your browser; if your browser asks not to be tracked (Do Not Track), nothing is measured. The data is erased after 25 months.
  • /commun/mesure.js: the filter applied before each sending, written for R-no Toolbox. 1.4 kB
    SHA-256 225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716
  • https://stats.r-no.fr/m.js: Umami’s tracker, open source (MIT), served by the measurement server. Its fingerprint is not shown here: it changes with each version of Umami, and you cannot check from your browser that it is the published code. For that part, you have to trust R-no.
What is stored
No cookie, and nothing in the address. What you type is never stored: it disappears when you reload or close the page. Your language is given by the address itself (/en/ or /fr/): nothing is stored to remember it. Like any website, the server records the download of the page and its files in its access logs (IP address, date and time, address requested, browser name). It never receives what you type.
Code that runs here
  • app.js: the calendar calculations and the page, written for R-no Toolbox. Not minified, no third-party library. 32.5 kB
    SHA-256 eafecb065ef2fca6ed9ee63270d41865da8fcba6ad8d42cce0976b255771f56c
  • textes.js: the French messages of the tool, shown by its script (the rest of the French page is written into its HTML when the site is built). It only defines texts, with no logic. 13.0 kB
    SHA-256 9be6fe9a89f52b28c95288540db8d794ac5eb7aa3092f8a3ff45d2168fd52c49
  • /commun/langue.js: the language helper, the same on every page of the site. It reads the language of the page and gives the tool its messages in that language. It stores nothing. 1.6 kB
    SHA-256 80f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631
Public holidays
Legal public holidays of France (Labour Code, article L3133-1, with Alsace-Moselle and the overseas departments), Belgium, Ireland, Italy, Luxembourg, the Netherlands, the United Kingdom (England and Wales, Scotland, Northern Ireland, with the one-off days proclaimed since 1995), the United States (federal holidays) and Canada (federal Labour Code and each province’s employment standards law). They are computed in the page for any year: fixed dates, “third Monday of January”, and days that follow Easter (Meeus, Jones and Butcher’s algorithm). The rules were checked in September 2026 against the laws and official sites; days created since 2000 only count from their first year (Juneteenth 2021, 4 October in Italy 2026…). A holiday falling on a weekend is only moved where the law fixes the replacement day (United Kingdom, United States, Canada Day, Quebec’s Fête nationale, Manitoba, Nova Scotia, Prince Edward Island, Newfoundland, Saskatchewan): it is then marked “substitute day”. Elsewhere, the law gives a day off chosen in the company, or pay, which cannot be known here. Nothing is downloaded: the rules are written in app.js.
How it was checked
Totals in days were compared with GNU date on 2,000 random pairs of dates between 1900 and 2100; years, months and days by checking that adding them back to the start gives the end; business days with a day-by-day count, with and without public holidays. The tests run again before each release.
Check it yourself
Download a script and compare its fingerprint with the one above:
curl -s https://r-no.fr/dates/diff/app.js | shasum -a 256
Limits
Gregorian calendar, extended before 1582 as if it had always been in use, from year 1 to 9999. Public holidays: only the legal ones. Days off by custom or collective agreement are not counted: Good Friday and mid-Lent in the French West Indies, 21 July in Guadeloupe and Martinique, patron saints in Italy, the extra days in Newfoundland’s public service… In the Netherlands, 5 May is a holiday every year under the law, but a day off only if the collective agreement says so. Quebec: Good Friday is counted; the law lets the employer choose Easter Monday instead. From 2005 to 2007, Whit Monday was worked in France as the solidarity day, and is not counted. Before 2000, the history of the laws is not followed. No time zone: hours are those of the clock. Words such as “years” and their plural come from your browser.