The Collector doesn't seem to be working at the moment, so I'm posting this here. I've written a small test for my iso_week function. You can download it, plus some test data, plus the script to create the test data here: http://www.cat-box.net/steve/zope_iso_week.tar (700k) You'll need to install mxDateTime if you want to make your own test data. You'll need bzip2 if you want to use the supplied test data. The function passes the test for all dates from 1600-01-01 to 2585-08-23. I've submitted it (with the date argument renamed self) to the Collector as a feature patch to DateTime.py. if you want to keep the standard DateTime.py, you can use it as PythonScript in Zope easily enough. ---- def iso_week(date): doy=date.dayOfYear() dow=(date.dow()-1)%7 y=date.year() thurs_this_week=doy+(3-dow) is_leap=y%4==0 and (y%100!=0 or y%400==0) if thurs_this_week>(is_leap and 366 or 365): week=1 if dow<8: y=y+1 else: mon_this_week=doy-dow day_year_begins=(dow-doy+1)%7 day_of_4_jan=(day_year_begins+3)%7 monday_of_first_week=4-day_of_4_jan week=(mon_this_week-monday_of_first_week)/7+1 if week==0: y=y-1 is_last_leap=y%4==0 and (y%100!=0 or y%400==0) if day_year_begins==4 or (day_year_begins==5 and is_last_leap): week=53 else: week=52 return y,week,dow+1 ---- -- Steve Alexander Software Engineer Cat-Box limited _______________________________________________ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )