1<?xml version="1.0" encoding="utf-8"?> 2<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" 3"../../../tools/boostbook/dtd/boostbook.dtd"> 4 5<!-- Copyright (c) 2001-2005 CrystalClear Software, Inc. 6 Subject to the Boost Software License, Version 1.0. 7 (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8--> 9 10<section id="date_time.design_goals"> 11 <title>Design Goals</title> 12 13 <informaltable frame="all"> 14 <tgroup cols="2"> 15 <thead> 16 <row> 17 <entry valign="top" morerows="1">Category</entry> 18 <entry>Description</entry> 19 </row> 20 <row> 21 <entry>Functions</entry> 22 </row> 23 </thead> 24 <tbody> 25 <row> 26 <entry valign="top" morerows="1">Interfaces</entry> 27 <entry>Provide concrete classes for manipulation of dates and times</entry> 28 </row> 29 <row> 30 <entry> 31 <itemizedlist mark="bullet"> 32 <listitem>date, time, date_duration, time_duration, date_period, time_period, etc</listitem> 33 <listitem>support for infinity - positive infinity, negative infinity</listitem> 34 <listitem>iterators over time and date ranges</listitem> 35 <listitem>allow date and time implementations to be separate as much as possible</listitem> 36 </itemizedlist> 37 </entry> 38 </row> 39 <row> 40 <entry valign="top" morerows="1">Calculation</entry> 41 <entry>Provide a basis for performing efficient time calculations </entry> 42 </row> 43 <row> 44 <entry> 45 <itemizedlist mark="bullet"> 46 <listitem>days between dates </listitem> 47 <listitem>durations of times </listitem> 48 <listitem>durations of dates and times together </listitem> 49 </itemizedlist> 50 </entry> 51 </row> 52 53 <row> 54 <entry valign="top" morerows="1">Representation Flexibility</entry> 55 <entry>Provide the maximum possible reusability and flexibility</entry> 56 </row> 57 <row> 58 <entry> 59 <itemizedlist mark="bullet"> 60 <listitem>traits based customization of internal representations for size versus resolution control</listitem> 61 <listitem>Allowing the use of different epochs and resolution (eg: seconds versus microseconds, dates starting at the year 2000 versus dates starting in 1700)</listitem> 62 <listitem>Options for configuring unique calendar representations (Gregorian + others)</listitem> 63 <listitem>the use of Julian Day number and the conversion between this and the Gregorian/Julian calendar date</listitem> 64 <listitem>Allow for flexible adjustments including leap seconds</listitem> 65 </itemizedlist> 66 </entry> 67 </row> 68 69 70 <row> 71 <entry valign="top" morerows="1">Date Calculations</entry> 72 <entry>Provide tools for date calculations</entry> 73 </row> 74 <row> 75 <entry> 76 <itemizedlist mark="bullet"> 77 <listitem>provide basis for calculation of complex event specs like holidays</listitem> 78 <listitem>calendar to calendar conversions</listitem> 79 <listitem>provide for ability to extend to new calendar systems</listitem> 80 </itemizedlist> 81 </entry> 82 </row> 83 84 <row> 85 <entry valign="top" morerows="1">Time Calculations</entry> 86 <entry>Provide concrete classes for manipulation of time</entry> 87 </row> 88 <row> 89 <entry> 90 <itemizedlist mark="bullet"> 91 <listitem>provide the ability to handle cross time-zone issues</listitem> 92 <listitem>provide adjustments for daylight savings time (summer time)</listitem> 93 </itemizedlist> 94 </entry> 95 </row> 96 97 <row> 98 <entry valign="top" morerows="1">Clock Interfaces</entry> 99 <entry>Provide classes for retrieving time current time</entry> 100 </row> 101 <row> 102 <entry> 103 <itemizedlist mark="bullet"> 104 <listitem>access to a network / high resolution time sources </listitem> 105 <listitem>retrieving the current date time information to populate classes </listitem> 106 </itemizedlist> 107 </entry> 108 </row> 109 110 <row> 111 <entry valign="top" morerows="1">I/O Interfaces</entry> 112 <entry>Provide input and output for time including</entry> 113 </row> 114 <row> 115 <entry> 116 <itemizedlist mark="bullet"> 117 <listitem>multi-lingual support </listitem> 118 <listitem>provide ISO8601 compliant time facet </listitem> 119 <listitem>use I/O facets for different local behavior </listitem> 120 </itemizedlist> 121 </entry> 122 </row> 123 </tbody> 124 </tgroup> 125 </informaltable> 126</section> 127