]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/date_time/example/posix_time/time_periods.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / date_time / example / posix_time / time_periods.cpp
1 /* Some simple examples of constructing and calculating with times
2 * Returns:
3 * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999] contains 2002-Feb-01 03:00:05
4 * [2002-Feb-01 00:00:00/2002-Feb-01 23:59:59.999999999] intersected with
5 * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999] is
6 * [2002-Feb-01 00:00:00/2002-Feb-01 03:00:04.999999999]
7 */
8
9 #include "boost/date_time/posix_time/posix_time.hpp"
10 #include <iostream>
11
12 using namespace boost::posix_time;
13 using namespace boost::gregorian;
14
15 //Create a simple period class to contain all the times in a day
16 class day_period : public time_period
17 {
18 public:
19 day_period(date d) : time_period(ptime(d),//midnight
20 ptime(d,hours(24)))
21 {}
22
23 };
24
25 int
26 main()
27 {
28
29 date d(2002,Feb,1); //an arbitrary date
30 //a period that represents a day
31 day_period dp(d);
32 ptime t(d, hours(3)+seconds(5)); //an arbitray time on that day
33 if (dp.contains(t)) {
34 std::cout << to_simple_string(dp) << " contains "
35 << to_simple_string(t) << std::endl;
36 }
37 //a period that represents part of the day
38 time_period part_of_day(ptime(d, hours(0)), t);
39 //intersect the 2 periods and print the results
40 if (part_of_day.intersects(dp)) {
41 time_period result = part_of_day.intersection(dp);
42 std::cout << to_simple_string(dp) << " intersected with\n"
43 << to_simple_string(part_of_day) << " is \n"
44 << to_simple_string(result) << std::endl;
45 }
46
47
48 return 0;
49 }
50
51
52 /* Copyright 2001-2004: CrystalClear Software, Inc
53 * http://www.crystalclearsoftware.com
54 *
55 * Subject to the Boost Software License, Version 1.0.
56 * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
57 */
58