ICU 57.1  57.1
tztrans.h
Go to the documentation of this file.
1 /*
2 *******************************************************************************
3 * Copyright (C) 2007-2008, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
6 */
7 #ifndef TZTRANS_H
8 #define TZTRANS_H
9 
15 #include "unicode/utypes.h"
16 
17 #if !UCONFIG_NO_FORMATTING
18 
19 #include "unicode/uobject.h"
20 
22 
23 // Forward declaration
24 class TimeZoneRule;
25 
32 public:
42  TimeZoneTransition(UDate time, const TimeZoneRule& from, const TimeZoneRule& to);
43 
49 
56 
62 
69  TimeZoneTransition* clone(void) const;
70 
77 
85  UBool operator==(const TimeZoneTransition& that) const;
86 
94  UBool operator!=(const TimeZoneTransition& that) const;
95 
101  UDate getTime(void) const;
102 
108  void setTime(UDate time);
109 
115  const TimeZoneRule* getFrom(void) const;
116 
123  void setFrom(const TimeZoneRule& from);
124 
131  void adoptFrom(TimeZoneRule* from);
132 
139  void setTo(const TimeZoneRule& to);
140 
148 
154  const TimeZoneRule* getTo(void) const;
155 
156 private:
157  UDate fTime;
158  TimeZoneRule* fFrom;
159  TimeZoneRule* fTo;
160 
161 public:
173  static UClassID U_EXPORT2 getStaticClassID(void);
174 
186  virtual UClassID getDynamicClassID(void) const;
187 };
188 
190 
191 #endif /* #if !UCONFIG_NO_FORMATTING */
192 
193 #endif // TZTRANS_H
194 
195 //eof
TimeZoneRule is a class representing a rule for time zone.
Definition: tzrule.h:32
TimeZoneTransition is a class representing a time zone transition.
Definition: tztrans.h:31
static UClassID getStaticClassID(void)
Return the class ID for this class.
void adoptFrom(TimeZoneRule *from)
Adopts the rule used before the transition.
void setFrom(const TimeZoneRule &from)
Sets the rule used before the transition.
const TimeZoneRule * getTo(void) const
Returns the rule used after the transition.
virtual UClassID getDynamicClassID(void) const
Returns a unique class ID POLYMORPHICALLY.
const TimeZoneRule * getFrom(void) const
Returns the rule used before the transition.
void adoptTo(TimeZoneRule *to)
Adopts the rule used after the transition.
TimeZoneTransition * clone(void) const
Clone this TimeZoneTransition object polymorphically.
UBool operator==(const TimeZoneTransition &that) const
Return true if the given TimeZoneTransition objects are semantically equal.
TimeZoneTransition & operator=(const TimeZoneTransition &right)
Assignment operator.
UBool operator!=(const TimeZoneTransition &that) const
Return true if the given TimeZoneTransition objects are semantically unequal.
void setTo(const TimeZoneRule &to)
Sets the rule used after the transition.
void setTime(UDate time)
Sets the time of transition in milliseconds.
TimeZoneTransition(const TimeZoneTransition &source)
Copy constructor.
TimeZoneTransition(UDate time, const TimeZoneRule &from, const TimeZoneRule &to)
Constructs a TimeZoneTransition with the time and the rules before/after the transition.
UDate getTime(void) const
Returns the time of transition in milliseconds.
TimeZoneTransition()
Constructs an empty TimeZoneTransition
~TimeZoneTransition()
Destructor.
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:221
int8_t UBool
The ICU boolean type.
Definition: umachine.h:234
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:91
Basic definitions for ICU, for both C and C++ APIs.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside.
Definition: utypes.h:358
double UDate
Date and Time data type.
Definition: utypes.h:201
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Definition: uversion.h:130
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Definition: uversion.h:129