Design Goals
Category
Description
Functions
Interfaces
Provide concrete classes for manipulation of dates and times
date, time, date_duration, time_duration, date_period, time_period, etc
support for infinity - positive infinity, negative infinity
iterators over time and date ranges
allow date and time implementations to be separate as much as possible
Calculation
Provide a basis for performing efficient time calculations
days between dates
durations of times
durations of dates and times together
Representation Flexibility
Provide the maximum possible reusability and flexibility
traits based customization of internal representations for size versus resolution control
Allowing the use of different epochs and resolution (eg: seconds versus microseconds, dates starting at the year 2000 versus dates starting in 1700)
Options for configuring unique calendar representations (Gregorian + others)
the use of Julian Day number and the conversion between this and the Gregorian/Julian calendar date
Allow for flexible adjustments including leap seconds
Date Calculations
Provide tools for date calculations
provide basis for calculation of complex event specs like holidays
calendar to calendar conversions
provide for ability to extend to new calendar systems
Time Calculations
Provide concrete classes for manipulation of time
provide the ability to handle cross time-zone issues
provide adjustments for daylight savings time (summer time)
Clock Interfaces
Provide classes for retrieving time current time
access to a network / high resolution time sources
retrieving the current date time information to populate classes
I/O Interfaces
Provide input and output for time including
multi-lingual support
provide ISO8601 compliant time facet
use I/O facets for different local behavior