The shortest day isn't always December 21st. This year it's today. And the reason is 'leap years'.
The wintersolstice, when the Sun is directly overhead at the Tropic of Capricorn, took place at eleven minutes to five this morning. Winter solstices occur once a year, but they don't quite happen one year apart. The actual difference is 365 days and 6 hours, and over the course of four years all those 6 hours nudge things on. In a leap year the winter solstice occurs in the morning, but the following year it occurs in the afternoon, and the year after that in the evening. Then in the year before another leap year, as this year, the winter solstice tips over past midnight into the early hours of the following day. And the entire point of a leap year is to kick the solstice back to where it ought to be, back to the 21st, and so the cycle repeats. Like so.
Winter solstice
Dec 21st
Dec 22nd
2011
 
5.31am
2012
11.12am
 
2013
5.12pm
 
2014
11.04pm
 
2015
 
4.49am
2016
10.45am
 
2017
4.29pm
 
2018
10.23pm
 
2019
 
4.20am
2020
10.03am
 
For three years in a row the shortest day is the 21st, and in the fourth it's the 22nd.
Except it's not quite that simple. As you might have noticed from the table, the gap between solstices isn't precisely one year six hours, it's about ten minutes shorter. And while ten minutes might not sound like much, every six years they add up to another hour, and every 140 years or so they make an entire day. The end result is that the winter solstice gets inexorably earlier and earlier as the decades go by, and not even the presence of the occasional February 29th can tug it back.
From now until 2043 the winter solstice will only be on 22nd December in one year out of four - always the year before a leap year. But the 2043 winter solstice occurs at two minutes past midnight on the 22nd, which means that four years later those jumps of just under six hours aren't quite enough to escape the 21st. Indeed from 2044 to 2083 the winter solstice will always be on December 21st, and from 2084 onwards the solstice occasionally slips back into December 20th.
Here's the winter solstice table for the 20th and 21st centuries, to demonstrate how this inexorable slipping back occurs.
Winter solstice
Dec 20th
Dec 21st
Dec 22nd
Dec 23rd
1900-1903
 
 
Leap year
Leap year +1
Leap year +2
Leap year +3
1904-1939
 
 
Every year
 
1940-1975
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
1976-2007
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
2008-2043
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
2044-2083
 
Every year
 
 
2084-2099
Leap year
Leap year +1
Leap year +2
Leap year +3
 
 
And so things would continue, with the solstices gradually retreating from the seasons in which they occur, were it not for that special rule about century years not divisible by 400. These aren't leap years, so don't have a February 29th, which holds back the tide for 24 hours and helps things get back on track. 2100 is just such a corrective year, which is why the winter solstice table for the 22nd century returns to more familiar dates.
Winter solstice
Dec 20th
Dec 21st
Dec 22nd
Dec 23rd
2100-2111
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
2112-2147
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
2148-2179
 
Leap year
Leap year +1
Leap year +2
Leap year +3
 
2180-2199
 
Every year
 
 
The year 2200 isn't a leap year either, which shifts things to the right again, ditto 2300. But 2400 is a leap year, allowing the solstice to slip left again, and so the whole cycle repeats every 400 years. In summary, the winter solstice can very occasionally be as late as December 23rd, and can very occasionally be as early as December 20th, but is far more usually one of the two days inbetween.
Winter solstice
Dec 20th
Dec 21st
Dec 22nd
Dec 23rd
2000-2043
 
✓
✓
 
2044-2083
 
✓
 
 
2084-2099
✓
✓
 
 
2100-2179
 
✓
✓
 
2180-2199
 
✓
 
 
2200-2215
 
 
✓
 
2216-2299
 
✓
✓
 
2300-2315
 
 
✓
✓
2316-2355
 
 
✓
 
2356-2399
 
✓
✓
 
This is all GMT, of course, so readers elsewhere will need to recalculate. Time zones to the east of Greenwich are more likely to see a solstice on December 23rd, and may never get a 20th, while time zones to the west of Greenwich are more likely to see a solstice on December 20th, and may never get a 23rd. If you fancy researching or playing, try here.
And if all that's gone completely over your head, simply know this. The shortest day of the year, this year, is on December 22nd. Tomorrow will have four seconds more daylight than today, sunset will be back after 4pm by New Year's Eve, and days'll be back over eight hours long by Twelfth Night. We're on the glorious up-cycle back to summer, which won't peak until the summer solstice on, oh, June 20th rather than the more normal 21st.