# InitialTimeZoneRule Class Reference

`InitialTimeZoneRule` represents a time zone rule representing a time zone effective from the beginning and has no actual start times. More...

`#include <tzrule.h>`

Inheritance diagram for InitialTimeZoneRule:

## Public Member Functions
| InitialTimeZoneRule (const UnicodeString &name, int32_t rawOffset, int32_t dstSavings)
| Constructs an `InitialTimeZoneRule` with the name, the GMT offset of its standard time and the amount of daylight saving offset adjustment.
| InitialTimeZoneRule (const InitialTimeZoneRule &source)
| Copy constructor.
virtual | ~InitialTimeZoneRule ()
| Destructor.
virtual InitialTimeZoneRule * | clone (void) const
| Clone this InitialTimeZoneRule object polymorphically.
InitialTimeZoneRule & | operator= (const InitialTimeZoneRule &right)
| Assignment operator.
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.
UBool | getStartInYear (int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const
| Gets the time when this rule takes effect in the given year.
virtual UBool | isEquivalentTo (const TimeZoneRule &that) 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
| Gets the very first time when this rule takes effect.
virtual UBool | getFinalStart (int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const
| 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
| 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
| Gets the most recent time when this rule takes effect before the specified time.
virtual UClassID | getDynamicClassID (void) const
| Returns a unique class ID POLYMORPHICALLY.
## Static Public Member Functions
static UClassID | getStaticClassID (void)
| Return the class ID for this class.

## Detailed Description

`InitialTimeZoneRule` represents a time zone rule representing a time zone effective from the beginning and has no actual start times.

Stable:
  ICU 3.8

Definition at line 198 of file tzrule.h.

## Constructor & Destructor Documentation

InitialTimeZoneRule::InitialTimeZoneRule | ( | const UnicodeString & | name,
|  | int32_t | rawOffset,
|  | int32_t | dstSavings |
| ) |  |  |

Constructs an `InitialTimeZoneRule` 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

InitialTimeZoneRule::InitialTimeZoneRule | ( | const InitialTimeZoneRule & | source | ) |

Copy constructor.

Parameters:

  | source | The InitialTimeZoneRule object to be copied.

Stable:
  ICU 3.8

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

Destructor.

Stable:
  ICU 3.8

## Member Function Documentation

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

Clone this InitialTimeZoneRule object polymorphically.

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

Returns:
  A copy of the object.

Stable:
  ICU 3.8

Implements TimeZoneRule.

virtual UClassID InitialTimeZoneRule::getDynamicClassID | ( | void |  | ) | const`[virtual]`

Returns a unique class ID POLYMORPHICALLY.

Pure virtual override. This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphic operator==() and clone() methods call this method.

Returns:
  The class ID for this object. All objects of a given class have the same class ID. Objects of other classes have different class IDs.

Stable:
  ICU 3.8

Implements UObject.

virtual UBool InitialTimeZoneRule::getFinalStart | ( | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UDate & | result |
| ) |  |  | const`[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

Implements TimeZoneRule.

virtual UBool InitialTimeZoneRule::getFirstStart | ( | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UDate & | result |
| ) |  |  | const`[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

Implements TimeZoneRule.

virtual UBool InitialTimeZoneRule::getNextStart | ( | UDate | base,
|  | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UBool | inclusive,
|  | UDate & | result |
| ) |  |  | const`[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

Implements TimeZoneRule.

virtual UBool InitialTimeZoneRule::getPreviousStart | ( | UDate | base,
|  | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UBool | inclusive,
|  | UDate & | result |
| ) |  |  | const`[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

Implements TimeZoneRule.

UBool InitialTimeZoneRule::getStartInYear | ( | int32_t | year,
|  | int32_t | prevRawOffset,
|  | int32_t | prevDSTSavings,
|  | UDate & | result |
| ) |  |  | const

Gets the time when this rule takes effect in the given year.

Parameters:

  | year | The Gregorian year, with 0 == 1 BCE, -1 == 2 BCE, etc.
  | 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 start time in the year.

Returns:
  true if this rule takes effect in the year and the result is set to "result".

Stable:
  ICU 3.8

static UClassID InitialTimeZoneRule::getStaticClassID | ( | void |  | ) | `[static]`

Return the class ID for this class.

This is useful only for comparing to a return value from getDynamicClassID(). For example:

     .   Base* polymorphic_pointer = createPolymorphicObject();
     .   if (polymorphic_pointer->getDynamicClassID() ==
     .       erived::getStaticClassID()) ...

Returns:
  The class ID for all objects of this class.

Stable:
  ICU 3.8

virtual UBool InitialTimeZoneRule::isEquivalentTo | ( | const TimeZoneRule & | that | ) | 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:

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

Returns:
  true if the other `TimeZoneRule` is equivalent to this one.

Stable:
  ICU 3.8

virtual UBool InitialTimeZoneRule::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

InitialTimeZoneRule& InitialTimeZoneRule::operator= | ( | const InitialTimeZoneRule & | right | ) |

Assignment operator.

Parameters:

  | right | The object to be copied.

Stable:
  ICU 3.8

Reimplemented from TimeZoneRule.

virtual UBool InitialTimeZoneRule::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