Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

SimpleTimeZone Class Reference

SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar. More...

#include <simpletz.h>

Inheritance diagram for SimpleTimeZone::

TimeZone UObject UMemory List of all members.

Public Types

enum  TimeMode { WALL_TIME = 0, STANDARD_TIME, UTC_TIME }
 TimeMode is used, together with a millisecond offset after midnight, to specify a rule transition time. More...


Public Methods

 SimpleTimeZone (const SimpleTimeZone &source)
 Copy constructor. More...

SimpleTimeZone & operator= (const SimpleTimeZone &right)
 Default assignment operator. More...

virtual ~SimpleTimeZone ()
 Destructor. More...

virtual UBool operator== (const TimeZone &that) const
 Returns true if the two TimeZone objects are equal; that is, they have the same ID, raw GMT offset, and DST rules. More...

 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID)
 Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, and which doesn't observe daylight savings time. More...

 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...

 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, int32_t savingsDST, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...

 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, TimeMode savingsStartTimeMode, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, TimeMode savingsEndTimeMode, int32_t savingsDST, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...

void setStartYear (int32_t year)
 Sets the daylight savings starting year, that is, the year this time zone began observing its specified daylight savings time rules. More...

void setStartRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode &status)
 Sets the daylight savings starting rule. More...

void setStartRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the daylight savings starting rule. More...

void setStartRule (int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode &status)
 Sets the DST start rule to a fixed date within a month. More...

void setStartRule (int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the DST start rule to a fixed date within a month. More...

void setStartRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode &status)
 Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...

void setStartRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode &status)
 Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...

void setEndRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode &status)
 Sets the daylight savings ending rule. More...

void setEndRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the daylight savings ending rule. More...

void setEndRule (int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode &status)
 Sets the DST end rule to a fixed date within a month. More...

void setEndRule (int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the DST end rule to a fixed date within a month. More...

void setEndRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode &status)
 Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...

void setEndRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode &status)
 Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...

virtual int32_t getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, UErrorCode &status) const
 Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add to GMT to get local time in this time zone, taking daylight savings time into account) as of a particular reference date. More...

virtual int32_t getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, int32_t monthLength, UErrorCode &status) const
 Gets the time zone offset, for current date, modified in case of daylight savings. More...

virtual int32_t getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, int32_t monthLength, int32_t prevMonthLength, UErrorCode &status) const
 Gets the time zone offset, for current date, modified in case of daylight savings. More...

virtual void getOffset (UDate date, UBool local, int32_t &rawOffset, int32_t &dstOffset, UErrorCode &ec) const
 Redeclared TimeZone method. More...

virtual int32_t getRawOffset (void) const
 Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account). More...

virtual void setRawOffset (int32_t offsetMillis)
 Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account). More...

void setDSTSavings (int32_t millisSavedDuringDST, UErrorCode &status)
 Sets the amount of time in ms that the clock is advanced during DST. More...

int32_t getDSTSavings (void) const
 Returns the amount of time in ms that the clock is advanced during DST. More...

virtual UBool useDaylightTime (void) const
 Queries if this TimeZone uses Daylight Savings Time. More...

virtual UBool inDaylightTime (UDate date, UErrorCode &status) const
 Returns true if the given date is within the period when daylight savings time is in effect; false otherwise. More...

UBool hasSameRules (const TimeZone &other) const
 Return true if this zone has the same rules and offset as another zone. More...

virtual TimeZoneclone (void) const
 Clones TimeZone objects polymorphically. More...

virtual UClassID getDynamicClassID (void) const
 Override TimeZone Returns a unique class ID POLYMORPHICALLY. More...


Static Public Methods

UClassID getStaticClassID (void)
 Return the class ID for this class. More...


Private Types

enum  EMode { DOM_MODE = 1, DOW_IN_MONTH_MODE, DOW_GE_DOM_MODE, DOW_LE_DOM_MODE }
 Constants specifying values of startMode and endMode. More...


Private Methods

 SimpleTimeZone ()
void construct (int32_t rawOffsetGMT, int8_t startMonth, int8_t startDay, int8_t startDayOfWeek, int32_t startTime, TimeMode startTimeMode, int8_t endMonth, int8_t endDay, int8_t endDayOfWeek, int32_t endTime, TimeMode endTimeMode, int32_t dstSavings, UErrorCode &status)
 Internal construction method. More...

void decodeRules (UErrorCode &status)
 Given a set of encoded rules in startDay and startDayOfMonth, decode them and set the startMode appropriately. More...

void decodeStartRule (UErrorCode &status)
void decodeEndRule (UErrorCode &status)

Static Private Methods

int32_t compareToRule (int8_t month, int8_t monthLen, int8_t prevMonthLen, int8_t dayOfMonth, int8_t dayOfWeek, int32_t millis, int32_t millisDelta, EMode ruleMode, int8_t ruleMonth, int8_t ruleDayOfWeek, int8_t ruleDay, int32_t ruleMillis)
 Compare a given date in the year to a rule. More...


Private Attributes

int8_t startMonth
int8_t startDay
int8_t startDayOfWeek
int32_t startTime
TimeMode startTimeMode
TimeMode endTimeMode
int8_t endMonth
int8_t endDay
int8_t endDayOfWeek
int32_t endTime
int32_t startYear
int32_t rawOffset
UBool useDaylight
EMode startMode
EMode endMode
int32_t dstSavings
 A positive value indicating the amount of time saved during DST in ms. More...


Static Private Attributes

const int8_t STATICMONTHLENGTH [12]

Detailed Description

SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar.

This class does not handle historical changes.

When specifying daylight-savings-time begin and end dates, use a negative value for dayOfWeekInMonth to indicate that SimpleTimeZone should count from the end of the month backwards. For example, in the U.S., Daylight Savings Time ends at the last (dayOfWeekInMonth = -1) Sunday in October, at 2 AM in standard time.

See also:
Calendar , GregorianCalendar , TimeZone
Author:
D. Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu

Definition at line 50 of file simpletz.h.


Member Enumeration Documentation

enum SimpleTimeZone::EMode [private]
 

Constants specifying values of startMode and endMode.

Enumeration values:
DOM_MODE 
DOW_IN_MONTH_MODE 
DOW_GE_DOM_MODE 
DOW_LE_DOM_MODE 

Definition at line 713 of file simpletz.h.

enum SimpleTimeZone::TimeMode
 

TimeMode is used, together with a millisecond offset after midnight, to specify a rule transition time.

Most rules transition at a local wall time, that is, according to the current time in effect, either standard, or DST. However, some rules transition at local standard time, and some at a specific UTC time. Although it might seem that all times could be converted to wall time, thus eliminating the need for this parameter, this is not the case.

Stable:
ICU 2.0
Enumeration values:
WALL_TIME 
STANDARD_TIME 
UTC_TIME 

Definition at line 64 of file simpletz.h.


Constructor & Destructor Documentation

SimpleTimeZone::SimpleTimeZone const SimpleTimeZone &    source
 

Copy constructor.

Parameters:
source  the object to be copied.
Stable:
ICU 2.0

virtual SimpleTimeZone::~SimpleTimeZone   [virtual]
 

Destructor.

Stable:
ICU 2.0

SimpleTimeZone::SimpleTimeZone int32_t    rawOffsetGMT,
const UnicodeString   ID
 

Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, and which doesn't observe daylight savings time.

Normally you should use TimeZone::createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Parameters:
rawOffsetGMT  The given base time zone offset to GMT.
ID  The timezone ID which is obtained from TimeZone.getAvailableIDs.
Stable:
ICU 2.0

SimpleTimeZone::SimpleTimeZone int32_t    rawOffsetGMT,
const UnicodeString   ID,
int8_t    savingsStartMonth,
int8_t    savingsStartDayOfWeekInMonth,
int8_t    savingsStartDayOfWeek,
int32_t    savingsStartTime,
int8_t    savingsEndMonth,
int8_t    savingsEndDayOfWeekInMonth,
int8_t    savingsEndDayOfWeek,
int32_t    savingsEndTime,
UErrorCode   status
 

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters:
rawOffsetGMT  The new SimpleTimeZone's raw GMT offset
ID  The new SimpleTimeZone's time zone ID.
savingsStartMonth  The daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonth  The daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeek  The daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTime  The daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsEndMonth  The daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonth  The daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeek  The daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTime  The daylight savings ending time, expressed as the number of milliseconds after midnight.
status  An UErrorCode to receive the status.
Stable:
ICU 2.0

SimpleTimeZone::SimpleTimeZone int32_t    rawOffsetGMT,
const UnicodeString   ID,
int8_t    savingsStartMonth,
int8_t    savingsStartDayOfWeekInMonth,
int8_t    savingsStartDayOfWeek,
int32_t    savingsStartTime,
int8_t    savingsEndMonth,
int8_t    savingsEndDayOfWeekInMonth,
int8_t    savingsEndDayOfWeek,
int32_t    savingsEndTime,
int32_t    savingsDST,
UErrorCode   status
 

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters:
rawOffsetGMT  The new SimpleTimeZone's raw GMT offset
ID  The new SimpleTimeZone's time zone ID.
savingsStartMonth  The daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonth  The daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeek  The daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTime  The daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsEndMonth  The daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonth  The daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeek  The daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTime  The daylight savings ending time, expressed as the number of milliseconds after midnight.
savingsDST  The number of milliseconds added to standard time to get DST time. Default is one hour.
status  An UErrorCode to receive the status.
Stable:
ICU 2.0

SimpleTimeZone::SimpleTimeZone int32_t    rawOffsetGMT,
const UnicodeString   ID,
int8_t    savingsStartMonth,
int8_t    savingsStartDayOfWeekInMonth,
int8_t    savingsStartDayOfWeek,
int32_t    savingsStartTime,
TimeMode    savingsStartTimeMode,
int8_t    savingsEndMonth,
int8_t    savingsEndDayOfWeekInMonth,
int8_t    savingsEndDayOfWeek,
int32_t    savingsEndTime,
TimeMode    savingsEndTimeMode,
int32_t    savingsDST,
UErrorCode   status
 

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters:
rawOffsetGMT  The new SimpleTimeZone's raw GMT offset
ID  The new SimpleTimeZone's time zone ID.
savingsStartMonth  The daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonth  The daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeek  The daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTime  The daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsStartTimeMode  Whether the start time is local wall time, local standard time, or UTC time. Default is local wall time.
savingsEndMonth  The daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonth  The daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeek  The daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTime  The daylight savings ending time, expressed as the number of milliseconds after midnight.
savingsEndTimeMode  Whether the end time is local wall time, local standard time, or UTC time. Default is local wall time.
savingsDST  The number of milliseconds added to standard time to get DST time. Default is one hour.
status  An UErrorCode to receive the status.
Stable:
ICU 2.0

SimpleTimeZone::SimpleTimeZone   [private]
 


Member Function Documentation

virtual TimeZone* SimpleTimeZone::clone void    const [virtual]
 

Clones TimeZone objects polymorphically.

Clients are responsible for deleting the TimeZone object cloned.

Returns:
A new copy of this TimeZone object.
Stable:
ICU 2.0

Reimplemented from TimeZone.

int32_t SimpleTimeZone::compareToRule int8_t    month,
int8_t    monthLen,
int8_t    prevMonthLen,
int8_t    dayOfMonth,
int8_t    dayOfWeek,
int32_t    millis,
int32_t    millisDelta,
EMode    ruleMode,
int8_t    ruleMonth,
int8_t    ruleDayOfWeek,
int8_t    ruleDay,
int32_t    ruleMillis
[static, private]
 

Compare a given date in the year to a rule.

Return 1, 0, or -1, depending on whether the date is after, equal to, or before the rule date. The millis are compared directly against the ruleMillis, so any standard-daylight adjustments must be handled by the caller.

Returns:
1 if the date is after the rule date, -1 if the date is before the rule date, or 0 if the date is equal to the rule date.

void SimpleTimeZone::construct int32_t    rawOffsetGMT,
int8_t    startMonth,
int8_t    startDay,
int8_t    startDayOfWeek,
int32_t    startTime,
TimeMode    startTimeMode,
int8_t    endMonth,
int8_t    endDay,
int8_t    endDayOfWeek,
int32_t    endTime,
TimeMode    endTimeMode,
int32_t    dstSavings,
UErrorCode   status
[private]
 

Internal construction method.

Parameters:
rawOffsetGMT  The new SimpleTimeZone's raw GMT offset
startMonth  the month DST starts
startDay  the day DST starts
startDayOfWeek  the DOW DST starts
startTime  the time DST starts
startTimeMode  Whether the start time is local wall time, local standard time, or UTC time. Default is local wall time.
endMonth  the month DST ends
endDay  the day DST ends
endDayOfWeek  the DOW DST ends
endTime  the time DST ends
endTimeMode  Whether the end time is local wall time, local standard time, or UTC time. Default is local wall time.
savingsDST  The number of milliseconds added to standard time to get DST time. Default is one hour.
status  An UErrorCode to receive the status.

void SimpleTimeZone::decodeEndRule UErrorCode   status [private]
 

void SimpleTimeZone::decodeRules UErrorCode   status [private]
 

Given a set of encoded rules in startDay and startDayOfMonth, decode them and set the startMode appropriately.

Do the same for endDay and endDayOfMonth.

Upon entry, the day of week variables may be zero or negative, in order to indicate special modes. The day of month variables may also be negative.

Upon exit, the mode variables will be set, and the day of week and day of month variables will be positive.

This method also recognizes a startDay or endDay of zero as indicating no DST.

void SimpleTimeZone::decodeStartRule UErrorCode   status [private]
 

int32_t SimpleTimeZone::getDSTSavings void    const
 

Returns the amount of time in ms that the clock is advanced during DST.

Returns:
the number of milliseconds the time is advanced with respect to standard time when the daylight savings rules are in effect. A positive number, typically one hour (3600000).
Stable:
ICU 2.0

virtual UClassID SimpleTimeZone::getDynamicClassID void    const [virtual]
 

Override TimeZone 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 2.0

Reimplemented from TimeZone.

void SimpleTimeZone::getOffset UDate    date,
UBool    local,
int32_t &    rawOffsetRef,
int32_t &    dstOffsetRef,
UErrorCode   ec
const [inline, virtual]
 

Redeclared TimeZone method.

This implementation simply calls the base class method, which otherwise would be hidden.

Draft:
This API has been introduced in ICU 2.8. It is still in draft state and may be modified in a future release.

Reimplemented from TimeZone.

Definition at line 836 of file simpletz.h.

virtual int32_t SimpleTimeZone::getOffset uint8_t    era,
int32_t    year,
int32_t    month,
int32_t    day,
uint8_t    dayOfWeek,
int32_t    milliseconds,
int32_t    monthLength,
int32_t    prevMonthLength,
UErrorCode   status
const [virtual]
 

Gets the time zone offset, for current date, modified in case of daylight savings.

This is the offset to add *to* UTC to get local time.

Parameters:
era  the era of the given date.
year  the year in the given date.
month  the month in the given date. Month is 0-based. e.g., 0 for January.
day  the day-in-month of the given date.
dayOfWeek  the day-of-week of the given date.
milliseconds  the millis in day in standard local time.
monthLength  the length of the given month in days.
prevMonthLength  length of the previous month in days.
status  An UErrorCode to receive the status.
Returns:
the offset to add *to* GMT to get local time.
Stable:
ICU 2.0

virtual int32_t SimpleTimeZone::getOffset uint8_t    era,
int32_t    year,
int32_t    month,
int32_t    day,
uint8_t    dayOfWeek,
int32_t    milliseconds,
int32_t    monthLength,
UErrorCode   status
const [virtual]
 

Gets the time zone offset, for current date, modified in case of daylight savings.

This is the offset to add *to* UTC to get local time.

Parameters:
era  the era of the given date.
year  the year in the given date.
month  the month in the given date. Month is 0-based. e.g., 0 for January.
day  the day-in-month of the given date.
dayOfWeek  the day-of-week of the given date.
milliseconds  the millis in day in standard local time.
monthLength  the length of the given month in days.
status  An UErrorCode to receive the status.
Returns:
the offset to add *to* GMT to get local time.
Stable:
ICU 2.0

Reimplemented from TimeZone.

virtual int32_t SimpleTimeZone::getOffset uint8_t    era,
int32_t    year,
int32_t    month,
int32_t    day,
uint8_t    dayOfWeek,
int32_t    millis,
UErrorCode   status
const [virtual]
 

Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add to GMT to get local time in this time zone, taking daylight savings time into account) as of a particular reference date.

The reference date is used to determine whether daylight savings time is in effect and needs to be figured into the offset that is returned (in other words, what is the adjusted GMT offset in this time zone at this particular date and time?). For the time zones produced by createTimeZone(), the reference data is specified according to the Gregorian calendar, and the date and time fields are in GMT, NOT local time.

Parameters:
era  The reference date's era
year  The reference date's year
month  The reference date's month (0-based; 0 is January)
day  The reference date's day-in-month (1-based)
dayOfWeek  The reference date's day-of-week (1-based; 1 is Sunday)
millis  The reference date's milliseconds in day, UTT (NOT local time).
status  An UErrorCode to receive the status.
Returns:
The offset in milliseconds to add to GMT to get local time.
Stable:
ICU 2.0

Reimplemented from TimeZone.

virtual int32_t SimpleTimeZone::getRawOffset void    const [virtual]
 

Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account).

Returns:
The TimeZone's raw GMT offset.
Stable:
ICU 2.0

Reimplemented from TimeZone.

UClassID SimpleTimeZone::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() ==
 .       Derived::getStaticClassID()) ...
 
Returns:
The class ID for all objects of this class.
Stable:
ICU 2.0

UBool SimpleTimeZone::hasSameRules const TimeZone   other const [virtual]
 

Return true if this zone has the same rules and offset as another zone.

Parameters:
other  the TimeZone object to be compared with
Returns:
true if the given zone has the same rules and offset as this one
Stable:
ICU 2.0

Reimplemented from TimeZone.

virtual UBool SimpleTimeZone::inDaylightTime UDate    date,
UErrorCode   status
const [virtual]
 

Returns true if the given date is within the period when daylight savings time is in effect; false otherwise.

If the TimeZone doesn't observe daylight savings time, this functions always returns false. This method is wasteful since it creates a new GregorianCalendar and deletes it each time it is called. This is a deprecated method and provided only for Java compatibility.

Parameters:
date  The date to test.
status  An UErrorCode to receive the status.
Returns:
true if the given date is in Daylight Savings Time; false otherwise.
Deprecated:
ICU 2.4. Use Calendar::inDaylightTime() instead.

Reimplemented from TimeZone.

SimpleTimeZone& SimpleTimeZone::operator= const SimpleTimeZone &    right
 

Default assignment operator.

Parameters:
right  the object to be copied.
Stable:
ICU 2.0

virtual UBool SimpleTimeZone::operator== const TimeZone   that const [virtual]
 

Returns true if the two TimeZone objects are equal; that is, they have the same ID, raw GMT offset, and DST rules.

Parameters:
that  The SimpleTimeZone object to be compared with.
Returns:
True if the given time zone is equal to this time zone; false otherwise.
Stable:
ICU 2.0

Reimplemented from TimeZone.

void SimpleTimeZone::setDSTSavings int32_t    millisSavedDuringDST,
UErrorCode   status
 

Sets the amount of time in ms that the clock is advanced during DST.

Parameters:
millisSavedDuringDST  the number of milliseconds the time is advanced with respect to standard time when the daylight savings rules are in effect. A positive number, typically one hour (3600000).
status  An UErrorCode to receive the status.
Stable:
ICU 2.0

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfMonth,
int32_t    dayOfWeek,
int32_t    time,
TimeMode    mode,
UBool    after,
UErrorCode   status
 

Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  A date within that month (1-based).
dayOfWeek  The day of the week on which this rule occurs.
time  The time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
after  If true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfMonth,
int32_t    dayOfWeek,
int32_t    time,
UBool    after,
UErrorCode   status
[inline]
 

Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  A date within that month (1-based).
dayOfWeek  The day of the week on which this rule occurs.
time  The time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
after  If true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 830 of file simpletz.h.

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfMonth,
int32_t    time,
TimeMode    mode,
UErrorCode   status
 

Sets the DST end rule to a fixed date within a month.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  The date in that month (1-based).
time  The time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfMonth,
int32_t    time,
UErrorCode   status
[inline]
 

Sets the DST end rule to a fixed date within a month.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  The date in that month (1-based).
time  The time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 825 of file simpletz.h.

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfWeekInMonth,
int32_t    dayOfWeek,
int32_t    time,
TimeMode    mode,
UErrorCode   status
 

Sets the daylight savings ending rule.

For example, in the U.S., Daylight Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. Therefore, you can set the end rule by calling:

 .   setEndRule(TimeFields.OCTOBER, -1, TimeFields.SUNDAY, 2*60*60*1000);
 
Various other types of rules can be specified by manipulating the dayOfWeek and dayOfWeekInMonth parameters. For complete details, see the documentation for setStartRule().
Parameters:
month  the daylight savings ending month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonth  the daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
dayOfWeek  the daylight savings ending day-of-week. See setStartRule() for a complete explanation.
time  the daylight savings ending time. Please see the member description for an example.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setEndRule int32_t    month,
int32_t    dayOfWeekInMonth,
int32_t    dayOfWeek,
int32_t    time,
UErrorCode   status
[inline]
 

Sets the daylight savings ending rule.

For example, in the U.S., Daylight Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. Therefore, you can set the end rule by calling:

 .   setEndRule(TimeFields.OCTOBER, -1, TimeFields.SUNDAY, 2*60*60*1000);
 
Various other types of rules can be specified by manipulating the dayOfWeek and dayOfWeekInMonth parameters. For complete details, see the documentation for setStartRule().
Parameters:
month  the daylight savings ending month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonth  the daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
dayOfWeek  the daylight savings ending day-of-week. See setStartRule() for a complete explanation.
time  the daylight savings ending time. Please see the member description for an example.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 819 of file simpletz.h.

Referenced by setEndRule().

virtual void SimpleTimeZone::setRawOffset int32_t    offsetMillis [virtual]
 

Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add to GMT to get local time, before taking daylight savings time into account).

Parameters:
offsetMillis  The new raw GMT offset for this time zone.
Stable:
ICU 2.0

Reimplemented from TimeZone.

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfMonth,
int32_t    dayOfWeek,
int32_t    time,
TimeMode    mode,
UBool    after,
UErrorCode   status
 

Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  A date within that month (1-based).
dayOfWeek  The day of the week on which this rule occurs.
time  The time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
after  If true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfMonth,
int32_t    dayOfWeek,
int32_t    time,
UBool    after,
UErrorCode   status
[inline]
 

Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  A date within that month (1-based).
dayOfWeek  The day of the week on which this rule occurs.
time  The time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
after  If true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 813 of file simpletz.h.

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfMonth,
int32_t    time,
TimeMode    mode,
UErrorCode   status
 

Sets the DST start rule to a fixed date within a month.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  The date in that month (1-based).
time  The time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfMonth,
int32_t    time,
UErrorCode   status
[inline]
 

Sets the DST start rule to a fixed date within a month.

Parameters:
month  The month in which this rule occurs (0-based).
dayOfMonth  The date in that month (1-based).
time  The time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 807 of file simpletz.h.

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfWeekInMonth,
int32_t    dayOfWeek,
int32_t    time,
TimeMode    mode,
UErrorCode   status
 

Sets the daylight savings starting rule.

For example, in the U.S., Daylight Savings Time starts at the first Sunday in April, at 2 AM in standard time. Therefore, you can set the start rule by calling: setStartRule(TimeFields.APRIL, 1, TimeFields.SUNDAY, 2*60*60*1000); The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate the exact starting date. Their exact meaning depend on their respective signs, allowing various types of rules to be constructed, as follows:

  • If both dayOfWeekInMonth and dayOfWeek are positive, they specify the day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday of the month).
  • If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify the day of week in the month counting backward from the end of the month. (e.g., (-1, MONDAY) is the last Monday in the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth specifies the day of the month, regardless of what day of the week it is. (e.g., (10, 0) is the tenth day of the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth specifies the day of the month counting backward from the end of the month, regardless of what day of the week it is (e.g., (-2, 0) is the next-to-last day of the month).
  • If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the first specified day of the week on or after the specfied day of the month. (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month [or the 15th itself if the 15th is a Sunday].)
  • If dayOfWeek and DayOfWeekInMonth are both negative, they specify the last specified day of the week on or before the specified day of the month. (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month [or the 20th itself if the 20th is a Tuesday].)
Parameters:
month  the daylight savings starting month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonth  the daylight savings starting day-of-week-in-month. Please see the member description for an example.
dayOfWeek  the daylight savings starting day-of-week. Please see the member description for an example.
time  the daylight savings starting time. Please see the member description for an example.
mode  whether the time is local wall time, local standard time, or UTC time. Default is local wall time.
status  An UErrorCode
Stable:
ICU 2.0

void SimpleTimeZone::setStartRule int32_t    month,
int32_t    dayOfWeekInMonth,
int32_t    dayOfWeek,
int32_t    time,
UErrorCode   status
[inline]
 

Sets the daylight savings starting rule.

For example, in the U.S., Daylight Savings Time starts at the first Sunday in April, at 2 AM in standard time. Therefore, you can set the start rule by calling: setStartRule(TimeFields.APRIL, 1, TimeFields.SUNDAY, 2*60*60*1000); The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate the exact starting date. Their exact meaning depend on their respective signs, allowing various types of rules to be constructed, as follows:

  • If both dayOfWeekInMonth and dayOfWeek are positive, they specify the day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday of the month).
  • If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify the day of week in the month counting backward from the end of the month. (e.g., (-1, MONDAY) is the last Monday in the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth specifies the day of the month, regardless of what day of the week it is. (e.g., (10, 0) is the tenth day of the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth specifies the day of the month counting backward from the end of the month, regardless of what day of the week it is (e.g., (-2, 0) is the next-to-last day of the month).
  • If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the first specified day of the week on or after the specfied day of the month. (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month [or the 15th itself if the 15th is a Sunday].)
  • If dayOfWeek and DayOfWeekInMonth are both negative, they specify the last specified day of the week on or before the specified day of the month. (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month [or the 20th itself if the 20th is a Tuesday].)
Parameters:
month  the daylight savings starting month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonth  the daylight savings starting day-of-week-in-month. Please see the member description for an example.
dayOfWeek  the daylight savings starting day-of-week. Please see the member description for an example.
time  the daylight savings starting time. Please see the member description for an example.
status  An UErrorCode
Stable:
ICU 2.0

Definition at line 801 of file simpletz.h.

Referenced by setStartRule().

void SimpleTimeZone::setStartYear int32_t    year
 

Sets the daylight savings starting year, that is, the year this time zone began observing its specified daylight savings time rules.

The time zone is considered not to observe daylight savings time prior to that year; SimpleTimeZone doesn't support historical daylight-savings-time rules.

Parameters:
year  the daylight savings starting year.
Stable:
ICU 2.0

virtual UBool SimpleTimeZone::useDaylightTime void    const [virtual]
 

Queries if this TimeZone uses Daylight Savings Time.

Returns:
True if this TimeZone uses Daylight Savings Time; false otherwise.
Stable:
ICU 2.0

Reimplemented from TimeZone.


Member Data Documentation

const int8_t SimpleTimeZone::STATICMONTHLENGTH[12] [static, private]
 

Definition at line 791 of file simpletz.h.

int32_t SimpleTimeZone::dstSavings [private]
 

A positive value indicating the amount of time saved during DST in ms.

Typically one hour; sometimes 30 minutes.

Definition at line 798 of file simpletz.h.

int8_t SimpleTimeZone::endDay [private]
 

Definition at line 786 of file simpletz.h.

int8_t SimpleTimeZone::endDayOfWeek [private]
 

Definition at line 786 of file simpletz.h.

EMode SimpleTimeZone::endMode [private]
 

Definition at line 792 of file simpletz.h.

int8_t SimpleTimeZone::endMonth [private]
 

Definition at line 786 of file simpletz.h.

int32_t SimpleTimeZone::endTime [private]
 

Definition at line 787 of file simpletz.h.

TimeMode SimpleTimeZone::endTimeMode [private]
 

Definition at line 785 of file simpletz.h.

int32_t SimpleTimeZone::rawOffset [private]
 

Definition at line 789 of file simpletz.h.

int8_t SimpleTimeZone::startDay [private]
 

Definition at line 783 of file simpletz.h.

int8_t SimpleTimeZone::startDayOfWeek [private]
 

Definition at line 783 of file simpletz.h.

EMode SimpleTimeZone::startMode [private]
 

Definition at line 792 of file simpletz.h.

int8_t SimpleTimeZone::startMonth [private]
 

Definition at line 783 of file simpletz.h.

int32_t SimpleTimeZone::startTime [private]
 

Definition at line 784 of file simpletz.h.

TimeMode SimpleTimeZone::startTimeMode [private]
 

Definition at line 785 of file simpletz.h.

int32_t SimpleTimeZone::startYear [private]
 

Definition at line 788 of file simpletz.h.

UBool SimpleTimeZone::useDaylight [private]
 

Definition at line 790 of file simpletz.h.


The documentation for this class was generated from the following file:
Generated on Mon Nov 24 14:36:54 2003 for ICU 2.8 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001