]>
Commit | Line | Data |
---|---|---|
46f4442e A |
1 | /* |
2 | ******************************************************************************* | |
729e4ab9 | 3 | * Copyright (C) 2008-2009, International Business Machines Corporation and |
46f4442e A |
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. | |
729e4ab9 | 30 | * @stable ICU 4.0 |
46f4442e A |
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. | |
729e4ab9 | 39 | * @stable ICU 4.0 |
46f4442e A |
40 | */ |
41 | DateInterval(UDate fromDate, UDate toDate); | |
42 | ||
43 | /** | |
44 | * destructor | |
729e4ab9 | 45 | * @stable ICU 4.0 |
46f4442e A |
46 | */ |
47 | virtual ~DateInterval(); | |
48 | ||
49 | /** | |
50 | * Get the from date. | |
51 | * @return the from date in dateInterval. | |
729e4ab9 | 52 | * @stable ICU 4.0 |
46f4442e A |
53 | */ |
54 | UDate getFromDate() const; | |
55 | ||
56 | /** | |
57 | * Get the to date. | |
58 | * @return the to date in dateInterval. | |
729e4ab9 | 59 | * @stable ICU 4.0 |
46f4442e A |
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. | |
729e4ab9 | 73 | * @stable ICU 4.0 |
46f4442e A |
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. | |
729e4ab9 | 86 | * @stable ICU 4.0 |
46f4442e A |
87 | */ |
88 | virtual UClassID getDynamicClassID(void) const; | |
89 | ||
90 | ||
91 | /** | |
92 | * Copy constructor. | |
729e4ab9 | 93 | * @stable ICU 4.0 |
46f4442e A |
94 | */ |
95 | DateInterval(const DateInterval& other); | |
96 | ||
97 | /** | |
98 | * Default assignment operator | |
729e4ab9 | 99 | * @stable ICU 4.0 |
46f4442e A |
100 | */ |
101 | DateInterval& operator=(const DateInterval&); | |
102 | ||
103 | /** | |
104 | * Equality operator. | |
105 | * @return TRUE if the two DateIntervals are the same | |
729e4ab9 | 106 | * @stable ICU 4.0 |
46f4442e A |
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 | |
729e4ab9 | 113 | * @stable ICU 4.0 |
46f4442e A |
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 | |
729e4ab9 | 122 | * @stable ICU 4.0 |
46f4442e A |
123 | */ |
124 | virtual DateInterval* clone() const; | |
125 | ||
126 | private: | |
127 | /** | |
128 | * Default constructor, not implemented. | |
46f4442e A |
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 |