BOOL DateTime::operator>(const DateTime& date) const { //ASSERT(GetStatus() == valid); //ASSERT(date.GetStatus() == valid); // Handle negative dates return DoubleFromDate(dt_) > DoubleFromDate(date.dt_); }
BOOL DateTime::operator<=(const DateTime& date) const { //ASSERT(GetStatus() == valid); //ASSERT(date.GetStatus() == valid); // Handle negative dates return DoubleFromDate(m_dt) <= DoubleFromDate(date.m_dt); }
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; }
DateTimeSpan DateTime::operator-(const DateTime& date) const { DateTimeSpan spanResult; // If either operand NULL, result NULL if (GetStatus() == null || date.GetStatus() == null) { spanResult.SetStatus(DateTimeSpan::null); return spanResult; } // If either operand invalid, result invalid if (GetStatus() == invalid || date.GetStatus() == invalid) { spanResult.SetStatus(DateTimeSpan::invalid); return spanResult; } // Return result (span can't be invalid, so don't check range) return DoubleFromDate(dt_) - DoubleFromDate(date.dt_); }