Function TimeStamp_yad(int y) in zope-2.1.4-src\lib\python\zodb\TimeStamp.c expects a 1900 based year (i.e. 0 = 1900, 2000=100, etc.), for positive agruments, when computing (y+300)/400.
TimeStamp_abst(int y, int mo, int d, int m, int s) seems to expect a 0 based year, on the other hand.
l = y%4==0 && (y%100 != 0 || y%400==0)
But it gets called with a 1900 based year in line 290 in function TimeStamp_timeTime(
TimeStamp_abst(TimeStamp_y-1900, TimeStamp_m- 1, TimeStamp_d-1,
Thanks for investigating this - because TimeStamp objects are used in the object database, I don't want to make any changes to this yet until I can talk to Jim and verify that the fix won't have any impact on ZODB code (mon. morning probably). Brian Lloyd brian@digicool.com Software Engineer 540.371.6909 Digital Creations http://www.digicool.com