Add to a date
What date is it 90 days, 3 months or 10 business days from a given day?
Result
How it counts
- Months and years
- Adding a month keeps the day of the month. When that day does not exist, the last day of the month is used: 31 January + 1 month = 28 February (29 in a leap year), and 29 February 2024 + 1 year = 28 February 2025. This is the rule of calendars and spreadsheets (
EDATE). GNUdate -d "+1 month"overflows instead, to 3 March. - Order
- Years and months first, then weeks and days, then hours, minutes and seconds. The order matters: 30 January 2025 + 1 month + 1 day is 1 March, not 28 February.
- Business days
- Only Monday to Friday count, as in spreadsheets (WORKDAY): 1 business day after a Friday is the Monday. Public holidays are skipped too if you choose a list: 1 business day after Friday 10 July 2026 is Monday 13, but after Monday 13 it is Wednesday 15, 14 July being a holiday.
- 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-256225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716 - 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.
- /commun/mesure.js: the filter applied before each sending, written for R-no Toolbox. 1.4 kB
- 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. 33.5 kB
SHA-2569ce435a5963b6dbe76c495008a439ef28f5d8e2a4f0b593742a75eaa8c1b2d6f - 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.4 kB
SHA-256555c107053795be10af101b709f9983cd686ad080c68c4ef059e0c6b04aaaeb6 - /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-25680f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631
- app.js: the calendar calculations and the page, written for R-no Toolbox. Not minified, no third-party library. 33.5 kB
- 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
- Day and week additions were compared with GNU date on 2,000 random dates between 1900 and 2100, month additions with an independent calculation of the end-of-month rule, business days with a day-by-day count, and Easter with a second, independent algorithm (Gauss’s, as corrected) for every year from 1583 to 9999, plus known dates. 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/add/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. “Today” comes from your device.