DTime is a collection of classes & functions designed to ease the MFC 
programmers burden when handling date and time values. If like me, 
having taken a look at the built in MFC classes CTime and CTimeSpan 
or the new COleDateTime and COleDateTimeSpan you decided they did not 
meet your requirements and you wanted to write your own super-duper 
date and time classes, but deadlines were looming, then look no 
further. Included in this distribution is DTime v2.0 which is for 32 
bit Windows only and requires MFC 4.x to use.


Some of DTime’s features include:

All source code is supplied for debugging / inspection.

The code is portable between the following platforms: Win32 (Windows 95),
Win32 (NT) and Win32 (NT Unicode).

The classes sticks very closely to the MFC class structures and provides
routines to map from CTime, COleDateTime, COleDateTimeSpan and CTimeSpan.
Mappings are also available to convert to and from Win32 SDK date and
time structures.

The classes do not rely on the "C" runtime library like CTime does. If
you have used the CTime class then you will no doubt have come across its
dependence on the environment variable "TZ" and all the problems that can
give. The classes use of UCT / Local is much less vague than CTime which
performs automatic mappings which can confuse even the most experienced
developer.

A number of date / time classes are provided namely CDate, CLTimeSpan,
CLTimeOfDay and CLDate.

A comprehensive set of classes and DDX and DDV routines which make use of
the new spin controls, tabbled dialogs and new "Windows 95" look and feel
are also provided to connect to the user interface. 

Tight integration with the Win32 NLSAPI. For example all the day of week
and month strings are taken from Win32. This means that if DTime is used
on an international version of Windows, the days of week etc. will be in
the local language.

A control panel applet is provided to allow the date when the calendar 
systems were introduced in your country to be modified. The Win32 
national language API does not provide this support so DTime augments
this by adding its own support.

Format functions with a superset of the functionality provided by
CTime/CTimeSpan::Format.

Overloaded versions of the Format functions are available to display a
date or time according to display characteristics as specified in the
control panel.

CDate provides a granularity of 1 day and uses a LONG to represent the
count of days. Its range is valid for roughly the whole range of a LONG
i.e. +/- 2 billion days from the current era. CDate uses a total of 8 
bytes storage.

CLTimeOfDay provides a granularity of 1 second and uses 6 bytes storage.

CLTimeSpan provides a granularity of 1 second and uses 10 bytes storage. 

CLDate provides a granularity of 1 second and uses 12 bytes storage. 
As with CDate, the full range of a LONG is valid. This is "quite" larger
than the roughly 60 year time span for CTime and the 100 CE - 9999CE
time span for COleDateTime. 

All classes are fully Unicode enabled and can be built for NT Unicode.

All classes are fully enabled for translation by storing all strings 
as resources.

Classes fully support UCT (GMT), Local and ET (Ephemeris Time) time 
frames and includes functions to map between them.

Classes also fully support the two most common calendars in use, 
namely the GREGORIAN and JULIAN calendars.

Demonstration of features such as use of CToolTipCtrl, spin buttons, 
number only edit boxes, DDX & DDV routines, MFC Extensions DLL's, 
portable code techniques plus many other features often asked about.


PJ Naughter
Email: pjn@indigo.ie
Web: http://indigo.ie/~pjn
4th November 1996
