
This is one way the time libraries might be organised. I think the functionality splits cleanly into two separate modules. "Time" module (System.Time? System.DateTime.Time?) * TAI/UTC arithmetic and conversions, leap-second tables * possibly UT1 types and conversions, Julian days and dates * getting the current time "Date" module (System.Date? System.DateTime.Date?) importing Time module * time zones * getting the locale time zone * converting times to "calendrical" format, Gregorian and possibly also Julian * calendrical arithmetic e.g. one month after March 31st * possibly "incomplete dates" e.g. "May 1" for all years * parsing and showing dates and times Left for other libraries (standard or user) * sunrise/sunset, moon phase, solstices & equinoxes, etc. * figuring out time zone from position on Earth * civil summertime zone adjustment calculation * calendar systems other than Gregorian and Julian * generalised sets over time e.g. "2pm-4pm every 4th Saturday of the month" -- Ashley Yakeley, Seattle WA