1.00.26
C++ Standard Airline IT Object Library
Toggle main menu visibility
Loading...
Searching...
No Matches
PeriodStruct.cpp
Go to the documentation of this file.
1
// //////////////////////////////////////////////////////////////////////
2
// Import section
3
// //////////////////////////////////////////////////////////////////////
4
// STL
5
#include <sstream>
6
#include <cassert>
7
// StdAir
8
#include <
stdair/basic/BasConst_Period_BOM.hpp
>
9
#include <
stdair/bom/PeriodStruct.hpp
>
10
11
namespace
stdair
{
12
13
// ////////////////////////////////////////////////////////////////////
14
PeriodStruct::PeriodStruct
()
15
: _dateRange (
BOOST_DEFAULT_DATE_PERIOD
), _dow () {
16
}
17
18
// ////////////////////////////////////////////////////////////////////
19
PeriodStruct::PeriodStruct
(
const
DatePeriod_T
& iDateRange,
20
const
DoWStruct
& iDoW)
21
: _dateRange (iDateRange), _dow (iDoW) {
22
}
23
24
// ////////////////////////////////////////////////////////////////////
25
PeriodStruct::PeriodStruct
(
const
PeriodStruct
& iPeriodStruct)
26
: _dateRange (iPeriodStruct._dateRange), _dow (iPeriodStruct._dow) {
27
28
}
29
30
// ////////////////////////////////////////////////////////////////////
31
const
std::string
PeriodStruct::describeShort
()
const
{
32
std::ostringstream ostr;
33
ostr << _dateRange <<
", "
<< _dow.describeShort ();
34
return
ostr.str();
35
}
36
37
// ////////////////////////////////////////////////////////////////////
38
const
std::string
PeriodStruct::describe
()
const
{
39
std::ostringstream ostr;
40
ostr << _dateRange <<
", "
<< _dow.describe ();
41
return
ostr.str();
42
}
43
44
// ////////////////////////////////////////////////////////////////////
45
PeriodStruct
PeriodStruct::
46
addDateOffset
(
const
DateOffset_T
& iDateOffset)
const
{
47
// Create a new date range by shifting the date range of this object with
48
// iDateOffset.
49
DatePeriod_T
lNewDateRange =
getDateRange
();
50
lNewDateRange.shift (iDateOffset);
51
52
// Create a new DoWStruct by shifting the DoWStruct of this object with
53
// iDateOffset.
54
const
long
lNbOfDaysOffset = iDateOffset.days();
55
const
DoWStruct
& lDoW =
getDoW
();
56
const
DoWStruct
lNewDoW = lDoW.
shift
(lNbOfDaysOffset);
57
58
return
PeriodStruct
(lNewDateRange, lNewDoW);
59
}
60
61
// ////////////////////////////////////////////////////////////////////
62
PeriodStruct
PeriodStruct::
63
intersection
(
const
PeriodStruct
& iPeriodStruct)
const
{
64
const
DatePeriod_T
lNewDateRange =
65
_dateRange.intersection (iPeriodStruct._dateRange);
66
const
DoWStruct
lNewDoW = _dow.
intersection
(iPeriodStruct._dow);
67
68
return
PeriodStruct
(lNewDateRange, lNewDoW);
69
}
70
71
// ////////////////////////////////////////////////////////////////////
72
const
bool
PeriodStruct::isValid
()
const
{
73
if
(_dateRange.is_null() ==
false
&& _dow.isValid()) {
74
return
true
;
75
}
76
return
false
;
77
}
78
79
}
BasConst_Period_BOM.hpp
PeriodStruct.hpp
stdair
Handle on the StdAir library context.
Definition
BasChronometer.cpp:9
stdair::DateOffset_T
boost::gregorian::date_duration DateOffset_T
Definition
stdair_date_time_types.hpp:35
stdair::BOOST_DEFAULT_DATE_PERIOD
const DatePeriod_T BOOST_DEFAULT_DATE_PERIOD
stdair::DatePeriod_T
boost::gregorian::date_period DatePeriod_T
Definition
stdair_date_time_types.hpp:29
stdair::DoWStruct
Definition
DoWStruct.hpp:18
stdair::DoWStruct::intersection
DoWStruct intersection(const DoWStruct &) const
Definition
DoWStruct.cpp:103
stdair::DoWStruct::shift
DoWStruct shift(const long &) const
Definition
DoWStruct.cpp:87
stdair::PeriodStruct::getDateRange
const DatePeriod_T & getDateRange() const
Definition
PeriodStruct.hpp:23
stdair::PeriodStruct::describeShort
const std::string describeShort() const
Definition
PeriodStruct.cpp:31
stdair::PeriodStruct::PeriodStruct
PeriodStruct(const DatePeriod_T &, const DoWStruct &)
Definition
PeriodStruct.cpp:19
stdair::PeriodStruct::describe
const std::string describe() const
Definition
PeriodStruct.cpp:38
stdair::PeriodStruct::getDoW
const DoWStruct & getDoW() const
Definition
PeriodStruct.hpp:26
stdair::PeriodStruct::addDateOffset
PeriodStruct addDateOffset(const DateOffset_T &) const
Definition
PeriodStruct.cpp:46
stdair::PeriodStruct::isValid
const bool isValid() const
Definition
PeriodStruct.cpp:72
stdair::PeriodStruct::PeriodStruct
PeriodStruct()
Definition
PeriodStruct.cpp:14
stdair::PeriodStruct::intersection
PeriodStruct intersection(const PeriodStruct &) const
Definition
PeriodStruct.cpp:63
Generated for StdAir by
1.17.0