blob: 5bacce88446748e03e3b949d9bf5281ea85a5943 [file] [log] [blame]
/*
*******************************************************************************
* Copyright (C) 2008-2009, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*
* File DTINTRV.H
*
*******************************************************************************
*/
#ifndef __DTINTRV_H__
#define __DTINTRV_H__
#include "unicode/utypes.h"
#include "unicode/uobject.h"
/**
* \file
* \brief C++ API: Date Interval data type
*/
U_NAMESPACE_BEGIN
/**
* This class represents a date interval.
* It is a pair of UDate representing from UDate 1 to UDate 2.
* @stable ICU 4.0
**/
class U_COMMON_API DateInterval : public UObject {
public:
/**
* Construct a DateInterval given a from date and a to date.
* @param fromDate The from date in date interval.
* @param toDate The to date in date interval.
* @stable ICU 4.0
*/
DateInterval(UDate fromDate, UDate toDate);
/**
* destructor
* @stable ICU 4.0
*/
virtual ~DateInterval();
/**
* Get the from date.
* @return the from date in dateInterval.
* @stable ICU 4.0
*/
UDate getFromDate() const;
/**
* Get the to date.
* @return the to date in dateInterval.
* @stable ICU 4.0
*/
UDate getToDate() const;
/**
* Return the class ID for this class. This is useful only for comparing to
* a return value from getDynamicClassID(). For example:
* <pre>
* . Base* polymorphic_pointer = createPolymorphicObject();
* . if (polymorphic_pointer->getDynamicClassID() ==
* . erived::getStaticClassID()) ...
* </pre>
* @return The class ID for all objects of this class.
* @stable ICU 4.0
*/
static UClassID U_EXPORT2 getStaticClassID(void);
/**
* Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
* method is to implement a simple version of RTTI, since not all C++
* compilers support genuine RTTI. Polymorphic operator==() and clone()
* methods call this method.
*
* @return The class ID for this object. All objects of a
* given class have the same class ID. Objects of
* other classes have different class IDs.
* @stable ICU 4.0
*/
virtual UClassID getDynamicClassID(void) const;
/**
* Copy constructor.
* @stable ICU 4.0
*/
DateInterval(const DateInterval& other);
/**
* Default assignment operator
* @stable ICU 4.0
*/
DateInterval& operator=(const DateInterval&);
/**
* Equality operator.
* @return TRUE if the two DateIntervals are the same
* @stable ICU 4.0
*/
virtual UBool operator==(const DateInterval& other) const;
/**
* Non-equality operator
* @return TRUE if the two DateIntervals are not the same
* @stable ICU 4.0
*/
UBool operator!=(const DateInterval& other) const;
/**
* clone this object.
* The caller owns the result and should delete it when done.
* @return a cloned DateInterval
* @stable ICU 4.0
*/
virtual DateInterval* clone() const;
private:
/**
* Default constructor, not implemented.
*/
DateInterval();
UDate fromDate;
UDate toDate;
} ;// end class DateInterval
inline UDate
DateInterval::getFromDate() const {
return fromDate;
}
inline UDate
DateInterval::getToDate() const {
return toDate;
}
inline UBool
DateInterval::operator!=(const DateInterval& other) const {
return ( !operator==(other) );
}
U_NAMESPACE_END
#endif