Panic in the Year Zero Zero

Hey everybody, mark your calendars, because 2000-02-30 is Hollywood Squares Day. There will be nothing on TV except reruns of Hollywood Squares and the parade led by Peter "Grand" Marshall.
What's that? You say your calendar doesn't have a 30th day of February. Well that's good, because it shouldn't.
But in the mid-1970s, on the quiz show Hollywood Squares (which at the time was hosted by Peter Marshall), the following exchange was aired:
Star: (dumbfounded) No, there will never be a February 30th.
Contestant: (also, dumbfounded) I agree.
Peter: Incorrect. In the year 2000 there will be a February Three-Oh.
Even JEOPARDY! makes mistakes, and Hollywood Squares is hardly in that class. I have been told that they made a correction on a subsequent show (though I never saw it). So a silly game show had a silly mistake. What's the big deal?
The big deal is that a million people saw that show and believed it was true. Many of them subsequently became programmers and wrote date routines. Some of them have posted in news:comp.software.year-2000 asking if Feb 30 exists. The writer of the bogus Hollywood Squares question had either misread a poor wording of the 4 except-100 except-400 rule, or read something by someone who had. A programmer who remembers his (Hollywood Squares) education, might read the same or similar poor wording of the leap year rule, and then write bad code as follows:
In C:
(I am not a C programmer. I would appreciate if any C programmer reading this would verify that this code incorrectly calculates a correct Hollywood Squares Day. Or I mean correctly calculates an incorrect Hollywood Squares Day. I mean that it produces the proper error correctly.)
In Cobol:
MOVE 28 TO DAYS-IN-MONTH (2)
IF FUNCTION MOD (YEAR, 4) = 0
ADD 1 TO DAYS-IN-MONTH (2)
IF FUNCTION MOD (YEAR, 100) = 0
IF FUNCTION MOD (YEAR, 400) = 0
ADD 1 TO DAYS-IN-MONTH (2)
ELSE
SUBTRACT 1 FROM DAYS-IN-MONTH (2)
END-IF
END-IF
END-IF
With the large number of people who watched Hollywood Squares, and the large number of people who've asked if February 2000 has 30 days, it is inevitable that someone somewhere wrote such a routine.
If you have come across an actual Hollywood Squares date routine, please tell me about it.
If you haven't come across a Hollywood Squares date routine, check your code carefully. Code which only checks the mod 4 rule is okay (for a hundred years) but any code which attempts to implement except-100 except-400 logic should be suspect. Such code will likely not be written as clearly as the code above. Wherever possible consolidate all date calculations into a single routine called from all of your system. Use the Cobol date functions DATE-OF-INTEGER, DAY-OF-INTEGER, INTEGER-OF-DATE, and INTEGER-OF-DAY; they will handle virtually all date needs except windowing or encapsulation. Date validation is handled by using INTEGER-OF-DATE which returns zero when the date is invalid.
Check your code! Check your code! And then test, test, test.
Panic in the Year Zero Zero
