]> git.proxmox.com Git - ceph.git/blame - 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
CommitLineData
7c673cae
FG
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
12using namespace boost::posix_time;
13using namespace boost::gregorian;
14
15//Create a simple period class to contain all the times in a day
16class day_period : public time_period
17{
18public:
19 day_period(date d) : time_period(ptime(d),//midnight
20 ptime(d,hours(24)))
21 {}
22
23};
24
25int
26main()
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