41 #ifndef __OPENFLUID_TOOLS_CHRONOLOGICALSERIE_HPP__
42 #define __OPENFLUID_TOOLS_CHRONOLOGICALSERIE_HPP__
54 template <
typename DataType=
double>
55 using ChronItem_t = std::pair<openfluid::core::DateTime,DataType>;
61 template <
typename DataType=
double>
66 typename std::list<ChronItem_t<DataType>>::iterator m_InternalIterator;
67 typename std::list<ChronItem_t<DataType>>::iterator m_PreviousInternalIterator;
76 m_PreviousInternalIterator(this->begin())
84 if (this->size() >= 2)
86 m_PreviousInternalIterator = (this->begin());
87 m_InternalIterator = (++this->begin());
108 if ((*m_PreviousInternalIterator).first > DT || m_InternalIterator == this->end())
114 while (m_InternalIterator != this->end() &&
115 !((*m_InternalIterator).first >= DT &&
116 (*m_PreviousInternalIterator).first <= DT))
120 if ((*m_InternalIterator).first == DT)
122 Before = (*m_InternalIterator);
123 After = (*m_InternalIterator);
126 else if ((*m_PreviousInternalIterator).first == DT)
128 Before = (*m_PreviousInternalIterator);
129 After = (*m_PreviousInternalIterator);
133 ++m_PreviousInternalIterator;
134 ++m_InternalIterator;
138 if (m_InternalIterator != this->end())
140 if ((*m_PreviousInternalIterator).first == DT)
142 Before = (*m_InternalIterator);
143 After = (*m_InternalIterator);
146 else if ((*m_InternalIterator).first == DT)
148 Before = (*m_InternalIterator);
149 After = (*m_InternalIterator);
154 Before = (*(m_PreviousInternalIterator));
155 After = (*m_InternalIterator);
Class for management of date and time information.
Definition: DateTime.hpp:88
Definition: ApplicationException.hpp:47