File: ex_print_hours.xml

package info (click to toggle)
boost1.88 1.88.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 576,932 kB
  • sloc: cpp: 4,149,234; xml: 136,789; ansic: 35,092; python: 33,910; asm: 5,698; sh: 4,604; ada: 1,681; makefile: 1,633; pascal: 1,139; perl: 1,124; sql: 640; yacc: 478; ruby: 271; java: 77; lisp: 24; csh: 6
file content (66 lines) | stat: -rw-r--r-- 1,887 bytes parent folder | download | duplicates (20)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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.print_hours">
  <title>Print Hours</title>

  <para>
    Demonstrate time iteration, clock retrieval, and simple calculation. 
  </para>
  <programlisting>
    <![CDATA[
  /* Print the remaining hours of the day
   * Uses the clock to get the local time 
   * Use an iterator to iterate over the remaining hours
   * Retrieve the date part from a time
   *
   * Expected Output something like:
   *
   * 2002-Mar-08 16:30:59
   * 2002-Mar-08 17:30:59
   * 2002-Mar-08 18:30:59
   * 2002-Mar-08 19:30:59
   * 2002-Mar-08 20:30:59
   * 2002-Mar-08 21:30:59
   * 2002-Mar-08 22:30:59
   * 2002-Mar-08 23:30:59
   * Time left till midnight: 07:29:01
   */

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

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

    //get the current time from the clock -- one second resolution
    ptime now = second_clock::local_time();
    //Get the date part out of the time
    date today = now.date();
    date tommorrow = today + days(1);
    ptime tommorrow_start(tommorrow); //midnight 

    //iterator adds by one hour
    time_iterator titr(now,hours(1)); 
    for (; titr < tommorrow_start; ++titr) {
      std::cout << to_simple_string(*titr) << std::endl;
    }
    
    time_duration remaining = tommorrow_start - now;
    std::cout << "Time left till midnight: " 
              << to_simple_string(remaining) << std::endl;
    return 0;
  }

    ]]>
  </programlisting>
</section>