• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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