Home | History | Annotate | Download | only in unicode
      1 /*
      2 *******************************************************************************
      3 * Copyright (C) 2008-2009, International Business Machines Corporation and
      4 * others. All Rights Reserved.
      5 *******************************************************************************
      6 *
      7 * File DTINTRV.H
      8 *
      9 *******************************************************************************
     10 */
     11 
     12 #ifndef __DTINTRV_H__
     13 #define __DTINTRV_H__
     14 
     15 #include "unicode/utypes.h"
     16 #include "unicode/uobject.h"
     17 
     18 /**
     19  * \file
     20  * \brief C++ API: Date Interval data type
     21  */
     22 
     23 
     24 U_NAMESPACE_BEGIN
     25 
     26 
     27 /**
     28  * This class represents a date interval.
     29  * It is a pair of UDate representing from UDate 1 to UDate 2.
     30  * @stable ICU 4.0
     31 **/
     32 class U_COMMON_API DateInterval : public UObject {
     33 public:
     34 
     35     /**
     36      * Construct a DateInterval given a from date and a to date.
     37      * @param fromDate  The from date in date interval.
     38      * @param toDate    The to date in date interval.
     39      * @stable ICU 4.0
     40      */
     41     DateInterval(UDate fromDate, UDate toDate);
     42 
     43     /**
     44      * destructor
     45      * @stable ICU 4.0
     46      */
     47     virtual ~DateInterval();
     48 
     49     /**
     50      * Get the from date.
     51      * @return  the from date in dateInterval.
     52      * @stable ICU 4.0
     53      */
     54     UDate getFromDate() const;
     55 
     56     /**
     57      * Get the to date.
     58      * @return  the to date in dateInterval.
     59      * @stable ICU 4.0
     60      */
     61     UDate getToDate() const;
     62 
     63 
     64     /**
     65      * Return the class ID for this class. This is useful only for comparing to
     66      * a return value from getDynamicClassID(). For example:
     67      * <pre>
     68      * .   Base* polymorphic_pointer = createPolymorphicObject();
     69      * .   if (polymorphic_pointer->getDynamicClassID() ==
     70      * .       erived::getStaticClassID()) ...
     71      * </pre>
     72      * @return          The class ID for all objects of this class.
     73      * @stable ICU 4.0
     74      */
     75     static UClassID U_EXPORT2 getStaticClassID(void);
     76 
     77     /**
     78      * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
     79      * method is to implement a simple version of RTTI, since not all C++
     80      * compilers support genuine RTTI. Polymorphic operator==() and clone()
     81      * methods call this method.
     82      *
     83      * @return          The class ID for this object. All objects of a
     84      *                  given class have the same class ID.  Objects of
     85      *                  other classes have different class IDs.
     86      * @stable ICU 4.0
     87      */
     88     virtual UClassID getDynamicClassID(void) const;
     89 
     90 
     91     /**
     92      * Copy constructor.
     93      * @stable ICU 4.0
     94      */
     95     DateInterval(const DateInterval& other);
     96 
     97     /**
     98      * Default assignment operator
     99      * @stable ICU 4.0
    100      */
    101     DateInterval& operator=(const DateInterval&);
    102 
    103     /**
    104      * Equality operator.
    105      * @return TRUE if the two DateIntervals are the same
    106      * @stable ICU 4.0
    107      */
    108     virtual UBool operator==(const DateInterval& other) const;
    109 
    110     /**
    111      * Non-equality operator
    112      * @return TRUE if the two DateIntervals are not the same
    113      * @stable ICU 4.0
    114      */
    115     UBool operator!=(const DateInterval& other) const;
    116 
    117 
    118     /**
    119      * clone this object.
    120      * The caller owns the result and should delete it when done.
    121      * @return a cloned DateInterval
    122      * @stable ICU 4.0
    123      */
    124      virtual DateInterval* clone() const;
    125 
    126 private:
    127     /**
    128      * Default constructor, not implemented.
    129      */
    130     DateInterval();
    131 
    132     UDate fromDate;
    133     UDate toDate;
    134 
    135 } ;// end class DateInterval
    136 
    137 
    138 inline UDate
    139 DateInterval::getFromDate() const {
    140     return fromDate;
    141 }
    142 
    143 
    144 inline UDate
    145 DateInterval::getToDate() const {
    146     return toDate;
    147 }
    148 
    149 
    150 inline UBool
    151 DateInterval::operator!=(const DateInterval& other) const {
    152     return ( !operator==(other) );
    153 }
    154 
    155 
    156 U_NAMESPACE_END
    157 
    158 #endif
    159