Exemplo n.º 1
0
		TimePeriod span(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			if( isInvalid(tp1) || isInvalid(tp2) )
			{
				return TimePeriod(DateTime::getNADT(), DateTime::getNADT());
			}

			return TimePeriod(std::min(tp1.begin(), tp2.begin()), std::max(tp1.end(), tp2.end()));
		}
Exemplo n.º 2
0
		TimePeriod intersection(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			if( !intersect(tp1, tp2) )
			{
				return TimePeriod(DateTime::getNADT(), DateTime::getNADT());
			}

			return TimePeriod(std::max(tp1.begin(), tp2.begin()), std::min(tp1.end(), tp2.end()));
		}
Exemplo n.º 3
0
		bool intersect(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			if( isInvalid(tp1) || isInvalid(tp2) )
			{
				return false;
			}

			return ((tp1.end() > tp2.begin()) && (tp1.begin() < tp2.end()));
		}
Exemplo n.º 4
0
		TimePeriod merge(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			if( isInvalid(tp1) || isInvalid(tp2) )
			{
				return TimePeriod(DateTime::getNADT(), DateTime::getNADT());
			}
			else if( intersect(tp1, tp2) || (tp1.end() == tp2.begin()) || (tp1.begin() == tp2.begin()) )
			{
				return TimePeriod(std::min(tp1.begin(), tp2.begin()), std::max(tp1.end(), tp2.end()));
			}

			return TimePeriod(DateTime::getNADT(), DateTime::getNADT());
		}
Exemplo n.º 5
0
		bool operator!=(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			return (tp1.begin() != tp2.begin()) || (tp1.end() != tp2.end());
		}
Exemplo n.º 6
0
		bool operator==(const TimePeriod& tp1, const TimePeriod& tp2)
		{
			return (tp1.begin() == tp2.begin()) && (tp1.end() == tp2.end());
		}