# Overall Design Goals

Overall Index -- Gregorian Index -- Posix Time Index

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 implemenations 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