DateTime DateTime::operator-(const DateTimeSpan& dateSpan) const { DateTime dateResult; // Initializes status_ to valid // If either operand NULL, result NULL if (GetStatus() == null || dateSpan.GetStatus() == null) { dateResult.SetStatus(null); return dateResult; } // If either operand invalid, result invalid if (GetStatus() == invalid || dateSpan.GetStatus() == invalid) { dateResult.SetStatus(invalid); return dateResult; } // Compute the actual date difference by subtracting underlying dates dateResult = DateFromDouble(DoubleFromDate(dt_) - dateSpan.span_); // Validate within range dateResult.CheckRange(); return dateResult; }