DateTimeSpan DateTimeSpan::operator-(const DateTimeSpan& dateSpan) const { DateTimeSpan dateSpanTemp; // If either operand Null, result Null if (GetStatus() == null || dateSpan.GetStatus() == null) { dateSpanTemp.SetStatus(null); return dateSpanTemp; } // If either operand Invalid, result Invalid if (GetStatus() == invalid || dateSpan.GetStatus() == invalid) { dateSpanTemp.SetStatus(invalid); return dateSpanTemp; } // Subtract spans and validate within legal range dateSpanTemp.span_ = span_ - dateSpan.span_; dateSpanTemp.CheckRange(); return dateSpanTemp; }
DateTimeSpan DateTimeSpan::operator+(const DateTimeSpan& dateSpan) const { DateTimeSpan dateSpanTemp; // If either operand Null, result Null if (GetStatus() == null || dateSpan.GetStatus() == null) { dateSpanTemp.SetStatus(null); return dateSpanTemp; } // If either operand Invalid, result Invalid if (GetStatus() == invalid || dateSpan.GetStatus() == invalid) { dateSpanTemp.SetStatus(invalid); return dateSpanTemp; } // Add spans and validate within legal range dateSpanTemp.m_span = m_span + dateSpan.m_span; dateSpanTemp.CheckRange(); return dateSpanTemp; }