|
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 |