ICU 72.1 72.1
Public Types | Public Member Functions | Static Public Member Functions
icu::DateTimeRule Class Reference

DateTimeRule is a class representing a time in a year by a rule specified by month, day of month, day of week and time in the day. More...

#include <dtrule.h>

Inheritance diagram for icu::DateTimeRule:
icu::UObject icu::UMemory

Public Types

enum  DateRuleType { DOM = 0 , DOW , DOW_GEQ_DOM , DOW_LEQ_DOM }
 Date rule type constants. More...
 
enum  TimeRuleType { WALL_TIME = 0 , STANDARD_TIME , UTC_TIME }
 Time rule type constants. More...
 

Public Member Functions

 DateTimeRule (int32_t month, int32_t dayOfMonth, int32_t millisInDay, TimeRuleType timeType)
 Constructs a DateTimeRule by the day of month and the time rule. More...
 
 DateTimeRule (int32_t month, int32_t weekInMonth, int32_t dayOfWeek, int32_t millisInDay, TimeRuleType timeType)
 Constructs a DateTimeRule by the day of week and its ordinal number and the time rule. More...
 
 DateTimeRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, UBool after, int32_t millisInDay, TimeRuleType timeType)
 Constructs a DateTimeRule by the first/last day of week on or after/before the day of month and the time rule. More...
 
 DateTimeRule (const DateTimeRule &source)
 Copy constructor. More...
 
 ~DateTimeRule ()
 Destructor. More...
 
DateTimeRuleclone () const
 Clone this DateTimeRule object polymorphically. More...
 
DateTimeRuleoperator= (const DateTimeRule &right)
 Assignment operator. More...
 
bool operator== (const DateTimeRule &that) const
 Return true if the given DateTimeRule objects are semantically equal. More...
 
bool operator!= (const DateTimeRule &that) const
 Return true if the given DateTimeRule objects are semantically unequal. More...
 
DateRuleType getDateRuleType (void) const
 Gets the date rule type, such as DOM More...
 
TimeRuleType getTimeRuleType (void) const
 Gets the time rule type. More...
 
int32_t getRuleMonth (void) const
 Gets the rule month. More...
 
int32_t getRuleDayOfMonth (void) const
 Gets the rule day of month. More...
 
int32_t getRuleDayOfWeek (void) const
 Gets the rule day of week. More...
 
int32_t getRuleWeekInMonth (void) const
 Gets the ordinal number of the occurrence of the day of week in the month. More...
 
int32_t getRuleMillisInDay (void) const
 Gets the rule time in the rule day. More...
 
virtual UClassID getDynamicClassID (void) const override
 Returns a unique class ID POLYMORPHICALLY. More...
 
- Public Member Functions inherited from icu::UObject
virtual ~UObject ()
 Destructor. More...
 
virtual UClassID getDynamicClassID () const
 ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. More...
 

Static Public Member Functions

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

Detailed Description

DateTimeRule is a class representing a time in a year by a rule specified by month, day of month, day of week and time in the day.

Stable:
ICU 3.8

Definition at line 33 of file dtrule.h.

Member Enumeration Documentation

◆ DateRuleType

Date rule type constants.

Stable:
ICU 3.8
Enumerator
DOM 

The exact day of month, for example, March 11.

DOW 

The Nth occurrence of the day of week, for example, 2nd Sunday in March.

DOW_GEQ_DOM 

The first occurrence of the day of week on or after the day of monnth, for example, first Sunday on or after March 8.

DOW_LEQ_DOM 

The last occurrence of the day of week on or before the day of month, for example, first Sunday on or before March 14.

Definition at line 40 of file dtrule.h.

◆ TimeRuleType

Time rule type constants.

Stable:
ICU 3.8
Enumerator
WALL_TIME 

The local wall clock time.

STANDARD_TIME 

The local standard time.

UTC_TIME 

The UTC time.

Definition at line 55 of file dtrule.h.

Constructor & Destructor Documentation

◆ DateTimeRule() [1/4]

icu::DateTimeRule::DateTimeRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  millisInDay,
TimeRuleType  timeType 
)

Constructs a DateTimeRule by the day of month and the time rule.

The date rule type for an instance created by this constructor is DOM.

Parameters
monthThe rule month, for example, Calendar::JANUARY
dayOfMonthThe day of month, 1-based.
millisInDayThe milliseconds in the rule date.
timeTypeThe time type, WALL_TIME or STANDARD_TIME or UTC_TIME.
Stable:
ICU 3.8

◆ DateTimeRule() [2/4]

icu::DateTimeRule::DateTimeRule ( int32_t  month,
int32_t  weekInMonth,
int32_t  dayOfWeek,
int32_t  millisInDay,
TimeRuleType  timeType 
)

Constructs a DateTimeRule by the day of week and its ordinal number and the time rule.

The date rule type for an instance created by this constructor is DOW.

Parameters
monthThe rule month, for example, Calendar::JANUARY.
weekInMonthThe ordinal number of the day of week. Negative number may be used for specifying a rule date counted from the end of the rule month.
dayOfWeekThe day of week, for example, Calendar::SUNDAY.
millisInDayThe milliseconds in the rule date.
timeTypeThe time type, WALL_TIME or STANDARD_TIME or UTC_TIME.
Stable:
ICU 3.8

◆ DateTimeRule() [3/4]

icu::DateTimeRule::DateTimeRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  dayOfWeek,
UBool  after,
int32_t  millisInDay,
TimeRuleType  timeType 
)

Constructs a DateTimeRule by the first/last day of week on or after/before the day of month and the time rule.

The date rule type for an instance created by this constructor is either DOM_GEQ_DOM or DOM_LEQ_DOM.

Parameters
monthThe rule month, for example, Calendar::JANUARY
dayOfMonthThe day of month, 1-based.
dayOfWeekThe day of week, for example, Calendar::SUNDAY.
aftertrue if the rule date is on or after the day of month.
millisInDayThe milliseconds in the rule date.
timeTypeThe time type, WALL_TIME or STANDARD_TIME or UTC_TIME.
Stable:
ICU 3.8

◆ DateTimeRule() [4/4]

icu::DateTimeRule::DateTimeRule ( const DateTimeRule source)

Copy constructor.

Parameters
sourceThe DateTimeRule object to be copied.
Stable:
ICU 3.8

◆ ~DateTimeRule()

icu::DateTimeRule::~DateTimeRule ( )

Destructor.

Stable:
ICU 3.8

Member Function Documentation

◆ clone()

DateTimeRule * icu::DateTimeRule::clone ( ) const

Clone this DateTimeRule object polymorphically.

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

Returns
A copy of the object.
Stable:
ICU 3.8

◆ getDateRuleType()

DateRuleType icu::DateTimeRule::getDateRuleType ( void  ) const

Gets the date rule type, such as DOM

Returns
The date rule type.
Stable:
ICU 3.8

◆ getDynamicClassID()

virtual UClassID icu::DateTimeRule::getDynamicClassID ( void  ) const
overridevirtual

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

Reimplemented from icu::UObject.

◆ getRuleDayOfMonth()

int32_t icu::DateTimeRule::getRuleDayOfMonth ( void  ) const

Gets the rule day of month.

When the date rule type is DOW, the value is always 0.

Returns
The rule day of month
Stable:
ICU 3.8

◆ getRuleDayOfWeek()

int32_t icu::DateTimeRule::getRuleDayOfWeek ( void  ) const

Gets the rule day of week.

When the date rule type is DOM, the value is always 0.

Returns
The rule day of week.
Stable:
ICU 3.8

◆ getRuleMillisInDay()

int32_t icu::DateTimeRule::getRuleMillisInDay ( void  ) const

Gets the rule time in the rule day.

Returns
The time in the rule day in milliseconds.
Stable:
ICU 3.8

◆ getRuleMonth()

int32_t icu::DateTimeRule::getRuleMonth ( void  ) const

Gets the rule month.

Returns
The rule month.
Stable:
ICU 3.8

◆ getRuleWeekInMonth()

int32_t icu::DateTimeRule::getRuleWeekInMonth ( void  ) const

Gets the ordinal number of the occurrence of the day of week in the month.

When the date rule type is not DOW, the value is always 0.

Returns
The rule day of week ordinal number in the month.
Stable:
ICU 3.8

◆ getStaticClassID()

static UClassID icu::DateTimeRule::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

◆ getTimeRuleType()

TimeRuleType icu::DateTimeRule::getTimeRuleType ( void  ) const

Gets the time rule type.

Returns
The time rule type, either WALL_TIME or STANDARD_TIME or UTC_TIME.
Stable:
ICU 3.8

◆ operator!=()

bool icu::DateTimeRule::operator!= ( const DateTimeRule that) const

Return true if the given DateTimeRule objects are semantically unequal.

Objects of different subclasses are considered unequal.

Parameters
thatThe object to be compared with.
Returns
true if the given DateTimeRule objects are semantically unequal.
Stable:
ICU 3.8

◆ operator=()

DateTimeRule & icu::DateTimeRule::operator= ( const DateTimeRule right)

Assignment operator.

Parameters
rightThe object to be copied.
Stable:
ICU 3.8

◆ operator==()

bool icu::DateTimeRule::operator== ( const DateTimeRule that) const

Return true if the given DateTimeRule objects are semantically equal.

Objects of different subclasses are considered unequal.

Parameters
thatThe object to be compared with.
Returns
true if the given DateTimeRule objects are semantically equal.
Stable:
ICU 3.8

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