- Main Page
- Modules
- Data Structures
- Files
- Related Pages

- Search for |

- Alphabetical List
- Data Structures
- Class Hierarchy
- Data Fields

# 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 DateTimeRule:

## 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.
| 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 oridinal number and the time rule.
| 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.
| DateTimeRule (const DateTimeRule &source)
| Copy constructor.
| ~DateTimeRule ()
| Destructor.
DateTimeRule * | clone (void) const
| Clone this DateTimeRule object polymorphically.
DateTimeRule & | operator= (const DateTimeRule &right)
| Assignment operator.
UBool | operator== (const DateTimeRule &that) const
| Return true if the given DateTimeRule objects are semantically equal.
UBool | operator!= (const DateTimeRule &that) const
| Return true if the given DateTimeRule objects are semantically unequal.
DateRuleType | getDateRuleType (void) const
| Gets the date rule type, such as `DOM`.
TimeRuleType | getTimeRuleType (void) const
| Gets the time rule type.
int32_t | getRuleMonth (void) const
| Gets the rule month.
int32_t | getRuleDayOfMonth (void) const
| Gets the rule day of month.
int32_t | getRuleDayOfWeek (void) const
| Gets the rule day of week.
int32_t | getRuleWeekInMonth (void) const
| Gets the ordinal number of the occurence of the day of week in the month.
int32_t | getRuleMillisInDay (void) const
| Gets the rule time in the rule day.
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

`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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

Definition at line 29 of file dtrule.h.

## Member Enumeration Documentation

enum DateTimeRule::DateRuleType

Date rule type constants.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

Enumerator:

  DOM | The exact day of month, for example, March 11.
  DOW | The Nth occurence of the day of week, for example, 2nd Sunday in March.
  DOW_GEQ_DOM | The first occurence 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 occurence of the day of week on or before the day of month, for example, first Sunday on or before March 14.

Definition at line 36 of file dtrule.h.

enum DateTimeRule::TimeRuleType

Time rule type constants.

Draft:
  This API may be changed in the future versions and was introduced in 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 51 of file dtrule.h.

## Constructor & Destructor Documentation

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:

  | month | The rule month, for example, `Calendar::JANUARY`
  | dayOfMonth | The day of month, 1-based.
  | millisInDay | The milliseconds in the rule date.
  | timeType | The time type, `WALL_TIME` or `STANDARD_TIME` or `UTC_TIME`.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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 oridinal number and the time rule.

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

Parameters:

  | month | The rule month, for example, `Calendar::JANUARY`.
  | weekInMonth | The 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.
  | dayOfWeek | The day of week, for example, `Calendar::SUNDAY`.
  | millisInDay | The milliseconds in the rule date.
  | timeType | The time type, `WALL_TIME` or `STANDARD_TIME` or `UTC_TIME`.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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:

  | month | The rule month, for example, `Calendar::JANUARY`
  | dayOfMonth | The day of month, 1-based.
  | dayOfWeek | The day of week, for example, `Calendar::SUNDAY`.
  | after | true if the rule date is on or after the day of month.
  | millisInDay | The milliseconds in the rule date.
  | timeType | The time type, `WALL_TIME` or `STANDARD_TIME` or `UTC_TIME`.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

DateTimeRule::DateTimeRule | ( | const DateTimeRule & | source | ) |

Copy constructor.

Parameters:

  | source | The DateTimeRule object to be copied.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

DateTimeRule::~DateTimeRule | ( |  | ) |

Destructor.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

## Member Function Documentation

DateTimeRule* DateTimeRule::clone | ( | void |  | ) | const

Clone this DateTimeRule object polymorphically.

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

Returns:
  A copy of the object.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Assignment operator.

Parameters:

  | right | The object to be copied.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

UBool DateTimeRule::operator== | ( | const DateTimeRule & | that | ) | const

Return true if the given DateTimeRule objects are semantically equal.

Objects of different subclasses are considered unequal.

Parameters:

  | that | The object to be compared with.

Returns:
  true if the given DateTimeRule objects are semantically equal.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

UBool DateTimeRule::operator!= | ( | const DateTimeRule & | that | ) | const

Return true if the given DateTimeRule objects are semantically unequal.

Objects of different subclasses are considered unequal.

Parameters:

  | that | The object to be compared with.

Returns:
  true if the given DateTimeRule objects are semantically unequal.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Gets the date rule type, such as `DOM`.

Returns:
  The date rule type.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Gets the time rule type.

Returns:
  The time rule type, either `WALL_TIME` or `STANDARD_TIME` or `UTC_TIME`.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Gets the rule month.

Returns:
  The rule month.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

int32_t 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

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

int32_t 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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Gets the ordinal number of the occurence 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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

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

Gets the rule time in the rule day.

Returns:
  The time in the rule day in milliseconds.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

static UClassID 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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

virtual UClassID DateTimeRule::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.

Draft:
  This API may be changed in the future versions and was introduced in ICU 3.8

Implements UObject.

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

- dtrule.h