
/* Copyright (c) 2002-2004 CrystalClear Software, Inc.
 * Use, modification and distribution is subject to the 
 * Boost Software License, Version 1.0. (See accompanying
 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 * Author: Jeff Garland 
 * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $
 */


//File doesn't have a current purpose except to generate docs
//and keep it changeable without recompiles

/** @defgroup time_basics Time Basics
  
**/ 

/** @defgroup time_format Time Formatting
  
**/ 



/*! @example local_utc_conversion.cpp
  Demonstrate utc to local and local to utc calculations including dst.
*/
/*! @example time_periods.cpp Demonstrate some simple uses of time periods.
*/
/*! @example print_hours.cpp Demonstrate time iteration, clock retrieval, and simple calculation.
 */
/*! @example time_math.cpp Various types of calculations with times and time durations.
 */

 

