You see, I'd been working under the premise that dates are all 24 hours long, not an unreasonable assumption you might think. Unfortunately, thanks to the end of Daylight Saving Time, October 29th is 25 hours long, throwing off my algorithm.
I'm going to fix this, of course. Soon, I hope.
UPDATE: It appears I'm an idiot, and the Date object does support the type of arithmetic I need. I don't see how I missed that when I implemented it... Anyway this'll make fixing it a lot easier. I still need to actually do it, of course. :)
Update 2006-10-31: The bug has been fixed. All seems well with the calendar now.