Today is the Winter Solstice in the northern hemisphere. The shortest day of the year. And here in Colorado, if the weather prognosticators can be trusted, both a warm and pretty cold day. The high is listed as 51°F and the low as -10°F. Last year on this day it was warmer (63°F), but it hasn’t been that cold since 1998, when it was -17°F. That’s also the biggest swing between high and low temps I could find in the records, which go back to 1928.
The thing is, it involves time. And the English language. English, however, is slippery and imprecise. As Humpty Dumpty said
When I use a word," Humpty Dumpty said, in rather a scornful tone, “it means just what I choose it to mean—neither more nor less.”
Time is hard. The winter solstice isn’t really a day. It’s an instant in time. We just decided to label the day by that instant. We say the winter solstice is the shortest day of the year, but it’s not. It’s (almost) the same as every other day. What we really mean is that it’s the shortest time between sunrise and sunset, which means it’s related to the solar day. Unless you’re close to the north pole, in which case the sun set in early October and won’t rise again until early March, so the “day” on the solstice is no shorter than it has been for a while.
Dates are hard too. The high for the day is predicted to be 51°F, between 1300 and 1400 local time. That makes sense. The low temperature, on the other hand, somewhere between 0800 and 0900 tomorrow, Dec. 22nd. That’s probably somehow historically related to the solar day, from one local noon to the next. Unfortunately, it’s completely disconnected from our calendar, which marks days as being from 000 hours on the clock to 2359.99999 on the same clock. That’s not the solar day or the sidereal day. Which leads to even more confusion.
All of that is why computers are bad at handling dates and times. Durations between a start tick and and an end tick aren’t too bad. We can measure the number of seconds pretty accurately between them. But try to give the start or end tick an unambiguous label or try to find the duration between two arbitrary labels and all you find are edge cases. So unless you’re one of the maintainers of the time zone database, leave it to the experts and use the official library in your language of choice. If you try to roll your own you WILL get it wrong at the edges.
Regardless of the difficulty in knowing what day/time it is, Happy Solstice everyone.