<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" 
"../../../tools/boostbook/dtd/boostbook.dtd">

<!-- Copyright (c) 2001-2004 CrystalClear Software, Inc.
     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)
-->

<section id="date_time.examples.time_math">
  <title>Time Math</title>

  <para> 
    Various types of calculations with times and time durations.  
  </para>
  <programlisting>
    <![CDATA[
  /* Some simple examples of constructing and calculating with times
   * Output:
   * 2002-Feb-01 00:00:00 - 2002-Feb-01 05:04:02.001000000 = -5:04:02.001000000
   */

  #include "boost/date_time/posix_time/posix_time.hpp"
  #include <iostream>

  int
  main() 
  {
    using namespace boost::posix_time;
    using namespace boost::gregorian;

    date d(2002,Feb,1); //an arbitrary date
    //construct a time by adding up some durations durations
    ptime t1(d, hours(5)+minutes(4)+seconds(2)+millisec(1));
    //construct a new time by subtracting some times
    ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- millisec(1);
    //construct a duration by taking the difference between times
    time_duration td = t2 - t1;
      
    std::cout << to_simple_string(t2) << " - " 
              << to_simple_string(t1) << " = "
              << to_simple_string(td) << std::endl;
    
    return 0;
  }
    ]]>
  </programlisting>
</section>
