The 1973 Date That Wasn’t in the Schedule

March 4, 1973 made no sense. The schedule on the screen was full of modern games, yet that old date kept appearing in the trail behind a list that had suddenly started putting games in the wrong order. I knew no game in the system had come anywhere near that day. So why was it the clue?

The first line of defense was ordinary testing, and it did not work. Normal test dates and a casual look at the list gave no reason to suspect trouble. The failure needed a very particular pairing: dates on opposite sides of a digit-width change, plus a location tie-break. Because ordinary tests missed that pairing, the flaw stayed hidden for years.

The schedule had been doing one simple job for years. It gathered a set of game entries, gave each one a number based on its date and time, and put the smallest number first. Think of numbered recipe cards on a kitchen table. Card 3 comes before card 12. A date stored as a number works the same way. Earlier dates have smaller numbers, so they rise to the top.

Then there was a small exception. If two entries needed a second way to break a tie, the system added the location name to the end of the date number. That made the tie predictable. But it also changed what the date was.

A number with a word stuck onto its end is no longer a number. It is text.

That sounds harmless, and for a long time it was harmless enough to escape notice. But the list now held two kinds of cards. Some carried a plain date number. Others carried a date number followed by a location. When the system compared two plain numbers, it put them in time order. When even one side was text, it used a different rule.

The scary name for that rule is lexicographic order. It just means reading from the left, one character at a time, like sorting words in a dictionary. It does not ask which number is bigger. It asks which character appears first.

Here is why that matters. A 12-digit date number that begins with 1 can be much later than an 11-digit date number that begins with 9. As numbers, the 12-digit value is much bigger than the 11-digit one. As text, the first character decides it. Since 1 comes before 9, the later date can get pushed ahead of the earlier one. The schedule is not randomly broken. It is following the wrong kind of order.

That is where March 4, 1973 came from. The date system counted time in milliseconds, tiny slices of a second, starting from January 1, 1970. On March 4, 1973, the count crossed from 11 digits to 12. Nothing special happened to any game that day. It was simply one of the places where the number gained another digit. Once dates of different widths were being treated as text, that extra digit became important in a way it never should have.

The schedule had to include dates on different sides of a digit-width change. Some entries also had to take the location tie-break path that turned their date number into text. If either condition was missing, the list looked fine. Ordinary dates kept the hidden mismatch quiet.

The fix was small, but the idea behind it was careful. Before anything could add a location name, the date number was given a fixed width of 15 characters. Shorter numbers got zeroes placed in front of them. Now every date card had the same number of spaces, whether it was old or new. When text comparison looked at the first character, each position meant the same thing for every date. Text order and date order finally agreed.

There was already an older workaround nearby for dates before 1970, when the time count turns negative. That was a useful reminder. Dates feel ordinary because we use them every day, but the computer version has edges. It has a zero point. It can become negative. Its number can grow another digit. And a tiny shortcut, like adding a word to a number, can change the rules without anyone noticing.

Once the location name was appended, the 12-digit date number that opened with 1 was no longer bigger than an 11-digit one that opened with 9. It was just an earlier character, so entries after March 4, 1973 slid ahead of entries before it. Padding every date to 15 characters removed that boundary, because a leading 1 and a leading 9 now sit in the same position for every game, old or new. The ordering bug never lived in the schedule’s games. It lived in the one place where a date stopped being a number and became text.