Days, weeks, hours and minutes are all fixed multiples of each other, so converting between them is arithmetic. Months and years are not. A month is whatever the calendar says it is — 28, 29, 30 or 31 days — so “three months from now” lands on a different number of days depending entirely on which three months you happen to be crossing.
From 31 January it is 89 days. From 30 November, 90. From 31 May, 92. That is a spread of three days on an interval most people would call the same length — and it is why this page gives you the calendar answer (years, months and days) and the arithmetic answer (total days) side by side rather than pretending they are the same question.
There is a second trap underneath it. Adding a month to 31 January has no correct answer, because 31 February does not exist. Every date library in the world clamps it to 28 February, which means adding a month and then subtracting one does not always bring you home. This page clamps the same way, because everything else does — but it is a convention, not a fact.
“Six weeks” sounds like plenty. Six weeks across Christmas is about twenty-two working days, and four of those are the ones nobody answers email on. The gap between calendar time and working time is where schedules quietly go wrong, and it is worst exactly when you can least afford it.
It is 260, 261 or 262 weekdays depending on which day the year starts on and whether it is a leap year — and then the bank holidays come off. England and Wales get eight, which lands a normal year at about 253 working days. Scotland gets nine but loses Easter Monday; the United States gets eleven federal holidays, several of which are not days off for most private employers at all.
Computed, not listed. The fixed ones are trivial; the moving ones are not. Good Friday and Easter Monday hang off Easter, which is found with the anonymous Gregorian computus — the same algorithm that has set the date since 1582, based on the ecclesiastical full moon rather than the real one. The May and August holidays are the first or last Monday of their month. That means this page is right for any year you type, not just the ones somebody remembered to hard-code.
It gets substituted to the next weekday, and so does Boxing Day — but they are not allowed to land on each other, so a Saturday Christmas pushes Boxing Day to the Monday and Christmas to the Tuesday. Getting this wrong is the single most common bug in home-made working-day calculators, and it only shows up once every few years.
Because a page that starts moving on its own is a page you cannot read. Press Count live and it ticks to the second; leave it and you get a snapshot taken when the page loaded. If you have reduced motion turned on, the live count stops on its own.
That a working day is a weekday you work — Monday to Friday unless you change it — that is not a public holiday or one of the days off you have entered. That is a definition, not a measurement: it knows nothing about shutdowns you have not added, or the fact that the days between Christmas and New Year are technically working days that almost nobody works.
That everything happens in your device's time zone, and that the calendar is proleptic Gregorian. Crossing a daylight-saving boundary makes one day 23 or 25 hours long, so an hours-and-minutes countdown across the change is out by an hour against the naive arithmetic — this page counts real elapsed time, so it stays right and the days figure is the one that looks odd.
Holiday sets cover England & Wales, Scotland, Northern Ireland and US
federal. The Republic of Ireland, and every regional and local holiday, are absent. The rules
follow the law as it stands: Scotland's St Andrew's Day from 2007, Juneteenth from 2021 and
Martin Luther King Jr. Day from 1986, and the one-off UK days since 2011 are listed. Years before
1978 use today's rules and may differ. The date logic is run from this page's own code by
countdown_model.py.
52 weeks is 364 days, so a 365-day year has one day left over and a leap year has two. Those spare days fall on whatever weekday the year starts on, and if they are weekdays, you get an extra one or two. A common year starting on a Saturday or Sunday gives 260; most years give 261; a leap year starting on a Friday, Saturday or Sunday can give 262.
It is the first Sunday after the ecclesiastical full moon on or after 21 March, and that full moon comes from a table, not a telescope. The tabular moon can sit a day or two from the real one, so Easter occasionally falls where an astronomer would not put it. The rule has not changed since 1582 and the computus here implements it exactly.
A bank holiday at a weekend moves to the next weekday: simple enough, until Christmas Day is a Saturday. Then Boxing Day moves to the Monday and Christmas to the Tuesday, because the two are not allowed to share. It comes up roughly every six years, which is easily long enough for the bug to ship and be forgotten.
Britain loses an hour in March and gains one in October, so one day each year is 23 hours long and another is 25. Count in milliseconds and the hours figure is right while the days figure looks a day out; count in days and the reverse. This page counts real elapsed time and reports calendar days separately, so the two never have to agree.
At ten in the morning, the countdown to midnight at the end of tomorrow is “two days” by the calendar and thirty-eight hours by the clock. Both are right. The big number counts the dates you have to cross; the clock under it counts the time that is actually left, which is why the two are shown together.
Most are, and the page works them out. A few are decided by proclamation and cannot be: the Royal Wedding in 2011, the two Jubilees, the Queen’s funeral and the Coronation. The page lists those it knows of, since 2011, and moves the ordinary holiday that was displaced. The next one is not here until it is announced.
Releases in which this page changed, newest last. Derived from the archived copy of every release, not from notes written afterwards — so it reflects what actually shipped. Site-wide passes are left out; they are in the full changelog.