# TimeZoneRule Class Reference

`TimeZoneRule` is a class representing a rule for time zone. More...

`#include <tzrule.h>`

Inheritance diagram for TimeZoneRule:

## Public Member Functions
virtual | ~TimeZoneRule ()
| Destructor.
virtual TimeZoneRule * | clone (void) const =0
| Clone this TimeZoneRule object polymorphically.
virtual UBool | operator== (const TimeZoneRule &that) const
| Return true if the given `TimeZoneRule` objects are semantically equal.
virtual UBool | operator!= (const TimeZoneRule &that) const
| Return true if the given `TimeZoneRule` objects are semantically unequal.
UnicodeString & | getName (UnicodeString &name) const
| Fills in "name" with the name of this time zone.
int32_t | getRawOffset (void) const
| Gets the standard time offset.
int32_t | getDSTSavings (void) const
| Gets the amount of daylight saving delta time from the standard time.
virtual UBool | isEquivalentTo (const TimeZoneRule &other) const
| Returns if this rule represents the same rule and offsets as another.
virtual UBool | getFirstStart (int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const =0
| Gets the very first time when this rule takes effect.
virtual UBool | getFinalStart (int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const =0
| Gets the final time when this rule takes effect.
virtual UBool | getNextStart (UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate &result) const =0
| Gets the first time when this rule takes effect after the specified time.
virtual UBool | getPreviousStart (UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate &result) const =0
| Gets the most recent time when this rule takes effect before the specified time.
## Protected Member Functions
| TimeZoneRule (const UnicodeString &name, int32_t rawOffset, int32_t dstSavings)
| Constructs a `TimeZoneRule` with the name, the GMT offset of its standard time and the amount of daylight saving offset adjustment.
| TimeZoneRule (const TimeZoneRule &source)
| Copy constructor.
TimeZoneRule & | operator= (const TimeZoneRule &right)
| Assignment operator.

## Detailed Description

`TimeZoneRule` is a class representing a rule for time zone.

`TimeZoneRule` has a set of time zone attributes, such as zone name, raw offset (UTC offset for standard time) and daylight saving time offset.

Stable:
  ICU 3.8

Definition at line 32 of file tzrule.h.

## Constructor & Destructor Documentation

virtual TimeZoneRule::~TimeZoneRule | ( |  | ) | `[virtual]`

Destructor.

Stable:
  ICU 3.8

TimeZoneRule::TimeZoneRule | ( | const UnicodeString & | name,
|  | int32_t | rawOffset,
|  | int32_t | dstSavings |
| ) |  |  | `[protected]`

Constructs a `TimeZoneRule` with the name, the GMT offset of its standard time and the amount of daylight saving offset adjustment.

Parameters:

  | name | The time zone name.
  | rawOffset | The UTC offset of its standard time in milliseconds.
  | dstSavings | The amount of daylight saving offset adjustment in milliseconds. If this ia a rule for standard time, the value of this argument is 0.

Stable:
  ICU 3.8

TimeZoneRule::TimeZoneRule | ( | const TimeZoneRule & | source | ) | `[protected]`

Copy constructor.

Parameters:

  | source | The TimeZoneRule object to be copied.

Stable:
  ICU 3.8

## Member Function Documentation

virtual TimeZoneRule* TimeZoneRule::clone | ( | void |  | ) | const`[pure virtual]`

Clone this TimeZoneRule object polymorphically.

The caller owns the result and should delete it when done.

Returns:
  A copy of the object.

Stable:
  ICU 3.8

Implemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

int32_t TimeZoneRule::getDSTSavings | ( | void |  | ) | const

Gets the amount of daylight saving delta time from the standard time.

Returns:
  The amount of daylight saving offset used by this rule in milliseconds.

Stable:
  ICU 3.8

virtual UBool TimeZoneRule::getFinalStart | ( | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UDate & | result |
| ) |  |  | const`[pure virtual]`

Gets the final time when this rule takes effect.

Parameters:

  | prevRawOffset | The standard time offset from UTC before this rule takes effect in milliseconds.
  | prevDSTSavings | The amount of daylight saving offset from the standard time.
  | result | Receives the final time when this rule takes effect.

Returns:
  true if the start time is available. When false is returned, output parameter "result" is unchanged.

Stable:
  ICU 3.8

Implemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

virtual UBool TimeZoneRule::getFirstStart | ( | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UDate & | result |
| ) |  |  | const`[pure virtual]`

Gets the very first time when this rule takes effect.

Parameters:

  | prevRawOffset | The standard time offset from UTC before this rule takes effect in milliseconds.
  | prevDSTSavings | The amount of daylight saving offset from the standard time.
  | result | Receives the very first time when this rule takes effect.

Returns:
  true if the start time is available. When false is returned, output parameter "result" is unchanged.

Stable:
  ICU 3.8

Implemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

UnicodeString& TimeZoneRule::getName | ( | UnicodeString & | name | ) | const

Fills in "name" with the name of this time zone.

Parameters:

  | name | Receives the name of this time zone.

Returns:
  A reference to "name"

Stable:
  ICU 3.8

virtual UBool TimeZoneRule::getNextStart | ( | UDate | base,
|  | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UBool | inclusive,
|  | UDate & | result |
| ) |  |  | const`[pure virtual]`

Gets the first time when this rule takes effect after the specified time.

Parameters:

  | base | The first start time after this base time will be returned.
  | prevRawOffset | The standard time offset from UTC before this rule takes effect in milliseconds.
  | prevDSTSavings | The amount of daylight saving offset from the standard time.
  | inclusive | Whether the base time is inclusive or not.
  | result | Receives The first time when this rule takes effect after the specified base time.

Returns:
  true if the start time is available. When false is returned, output parameter "result" is unchanged.

Stable:
  ICU 3.8

Implemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

virtual UBool TimeZoneRule::getPreviousStart | ( | UDate | base,
|  | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UBool | inclusive,
|  | UDate & | result |
| ) |  |  | const`[pure virtual]`

Gets the most recent time when this rule takes effect before the specified time.

Parameters:

  | base | The most recent time before this base time will be returned.
  | prevRawOffset | The standard time offset from UTC before this rule takes effect in milliseconds.
  | prevDSTSavings | The amount of daylight saving offset from the standard time.
  | inclusive | Whether the base time is inclusive or not.
  | result | Receives The most recent time when this rule takes effect before the specified base time.

Returns:
  true if the start time is available. When false is returned, output parameter "result" is unchanged.

Stable:
  ICU 3.8

Implemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

int32_t TimeZoneRule::getRawOffset | ( | void |  | ) | const

Gets the standard time offset.

Returns:
  The standard time offset from UTC in milliseconds.

Stable:
  ICU 3.8

virtual UBool TimeZoneRule::isEquivalentTo | ( | const TimeZoneRule & | other | ) | const`[virtual]`

Returns if this rule represents the same rule and offsets as another.

When two `TimeZoneRule` objects differ only its names, this method returns true.

Parameters:

  | other | The `TimeZoneRule` object to be compared with.

Returns:
  true if the other `TimeZoneRule` is the same as this one.

Stable:
  ICU 3.8

virtual UBool TimeZoneRule::operator!= | ( | const TimeZoneRule & | that | ) | const`[virtual]`

Return true if the given `TimeZoneRule` objects are semantically unequal.

Objects of different subclasses are considered unequal.

Parameters:

  | that | The object to be compared with.

Returns:
  true if the given `TimeZoneRule` objects are semantically unequal.

Stable:
  ICU 3.8

TimeZoneRule& TimeZoneRule::operator= | ( | const TimeZoneRule & | right | ) | `[protected]`

Assignment operator.

Parameters:

  | right | The object to be copied.

Stable:
  ICU 3.8

Reimplemented in InitialTimeZoneRule, AnnualTimeZoneRule, and TimeArrayTimeZoneRule.

virtual UBool TimeZoneRule::operator== | ( | const TimeZoneRule & | that | ) | const`[virtual]`

Return true if the given `TimeZoneRule` objects are semantically equal.

Objects of different subclasses are considered unequal.

Parameters:

  | that | The object to be compared with.

Returns:
  true if the given `TimeZoneRule` objects are semantically equal.

Stable:
  ICU 3.8

The documentation for this class was generated from the following file:

- tzrule.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines