ICU 77.1  77.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
tztrans.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2007-2008, International Business Machines Corporation and *
6 * others. All Rights Reserved. *
7 *******************************************************************************
8 */
9 #ifndef TZTRANS_H
10 #define TZTRANS_H
11 
17 #include "unicode/utypes.h"
18 
19 #if U_SHOW_CPLUSPLUS_API
20 
21 #if !UCONFIG_NO_FORMATTING
22 
23 #include "unicode/uobject.h"
24 
25 U_NAMESPACE_BEGIN
26 
27 // Forward declaration
28 class TimeZoneRule;
29 
36 public:
46  TimeZoneTransition(UDate time, const TimeZoneRule& from, const TimeZoneRule& to);
47 
53 
60 
66 
74 
81 
89  bool operator==(const TimeZoneTransition& that) const;
90 
98  bool operator!=(const TimeZoneTransition& that) const;
99 
105  UDate getTime() const;
106 
112  void setTime(UDate time);
113 
119  const TimeZoneRule* getFrom() const;
120 
127  void setFrom(const TimeZoneRule& from);
128 
135  void adoptFrom(TimeZoneRule* from);
136 
143  void setTo(const TimeZoneRule& to);
144 
152 
158  const TimeZoneRule* getTo() const;
159 
160 private:
161  UDate fTime;
162  TimeZoneRule* fFrom;
163  TimeZoneRule* fTo;
164 
165 public:
177  static UClassID U_EXPORT2 getStaticClassID();
178 
190  virtual UClassID getDynamicClassID() const override;
191 };
192 
193 U_NAMESPACE_END
194 
195 #endif /* #if !UCONFIG_NO_FORMATTING */
196 
197 #endif /* U_SHOW_CPLUSPLUS_API */
198 
199 #endif // TZTRANS_H
200 
201 //eof
TimeZoneRule is a class representing a rule for time zone.
Definition: tzrule.h:36
TimeZoneTransition is a class representing a time zone transition.
Definition: tztrans.h:35
TimeZoneTransition(UDate time, const TimeZoneRule &from, const TimeZoneRule &to)
Constructs a TimeZoneTransition with the time and the rules before/after the transition.
virtual UClassID getDynamicClassID() const override
Returns a unique class ID POLYMORPHICALLY.
TimeZoneTransition()
Constructs an empty TimeZoneTransition
void setTo(const TimeZoneRule &to)
Sets the rule used after the transition.
const TimeZoneRule * getFrom() const
Returns the rule used before the transition.
void setFrom(const TimeZoneRule &from)
Sets the rule used before the transition.
TimeZoneTransition & operator=(const TimeZoneTransition &right)
Assignment operator.
TimeZoneTransition(const TimeZoneTransition &source)
Copy constructor.
const TimeZoneRule * getTo() const
Returns the rule used after the transition.
static UClassID getStaticClassID()
Return the class ID for this class.
TimeZoneTransition * clone() const
Clone this TimeZoneTransition object polymorphically.
void adoptTo(TimeZoneRule *to)
Adopts the rule used after the transition.
UDate getTime() const
Returns the time of transition in milliseconds.
void adoptFrom(TimeZoneRule *from)
Adopts the rule used before the transition.
void setTime(UDate time)
Sets the time of transition in milliseconds.
bool operator==(const TimeZoneTransition &that) const
Return true if the given TimeZoneTransition objects are semantically equal.
~TimeZoneTransition()
Destructor.
bool operator!=(const TimeZoneTransition &that) const
Return true if the given TimeZoneTransition objects are semantically unequal.
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
C++ API: Common ICU base class UObject.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
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:316
double UDate
Date and Time data type.
Definition: utypes.h:218