BOOL DateTime::operator>(const DateTime& date) const
 {   //ASSERT(GetStatus() == valid);
    //ASSERT(date.GetStatus() == valid);
     
    // Handle negative dates
    return DoubleFromDate(dt_) > DoubleFromDate(date.dt_);
 }
示例#2
0
 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_);
   }