Time library design proposal

Ashley Yakeley ashley at semantic.org
Wed Feb 2 07:56:36 EST 2005


In article <Pine.WNT.4.61.0502012323540.2748 at philo>,
 "S. Alexander Jacobson" <alex at alexjacobson.com> wrote:

> Are you seriously saying that you never have use 
> for a Date without a Time?  On what date were you 
> born?

There's something to be said for representing date and time of day 
separately in calendar time, something like this:

  data CalendarDate = CalendarDate
  {
    cdYear  :: Int,
    cdMonth :: Int,
    cdDay   :: Int
  }

  data TimeOfDay = TimeOfDay
  {
    todHour    :: Int,
    todMin     :: Int,
    todSec     :: Int,
    todPicosec :: Integer -- or nanosec
  }

  data CalendarTime = CalendarTime
  {
    ctDate :: CalendarDate,
    ctTime :: TimeOfDay
  }

  getDateGregorian :: JulianDay -> CalendarDate

  -- much less useful, but easy to write
  getDateJulian :: JulianDay -> CalendarDate

I can see a number of applications for calendar dates by themselves and 
perhaps times of day also. This also might be more 
internationalisation-friendly, as users can create their own calendar 
types and still use TimeOfDay.

On the other hand, it adds two levels of construction to CalendarTime.

-- 
Ashley Yakeley, Seattle WA



More information about the Libraries mailing list