]> git.saurik.com Git - apple/icu.git/blame - icuSources/i18n/dtrule.cpp
ICU-400.39.tar.gz
[apple/icu.git] / icuSources / i18n / dtrule.cpp
CommitLineData
46f4442e
A
1/*
2*******************************************************************************
3* Copyright (C) 2007, International Business Machines Corporation and *
4* others. All Rights Reserved. *
5*******************************************************************************
6*/
7
8#include "unicode/utypes.h"
9
10#if !UCONFIG_NO_FORMATTING
11
12#include "unicode/dtrule.h"
13
14U_NAMESPACE_BEGIN
15
16UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DateTimeRule)
17
18DateTimeRule::DateTimeRule(int32_t month,
19 int32_t dayOfMonth,
20 int32_t millisInDay,
21 TimeRuleType timeType)
22: fMonth(month), fDayOfMonth(dayOfMonth), fDayOfWeek(0), fWeekInMonth(0), fMillisInDay(millisInDay),
23 fDateRuleType(DateTimeRule::DOM), fTimeRuleType(timeType) {
24}
25
26DateTimeRule::DateTimeRule(int32_t month,
27 int32_t weekInMonth,
28 int32_t dayOfWeek,
29 int32_t millisInDay,
30 TimeRuleType timeType)
31: fMonth(month), fDayOfMonth(0), fDayOfWeek(dayOfWeek), fWeekInMonth(weekInMonth), fMillisInDay(millisInDay),
32 fDateRuleType(DateTimeRule::DOW), fTimeRuleType(timeType) {
33}
34
35DateTimeRule::DateTimeRule(int32_t month,
36 int32_t dayOfMonth,
37 int32_t dayOfWeek,
38 UBool after,
39 int32_t millisInDay,
40 TimeRuleType timeType)
41: UObject(),
42 fMonth(month), fDayOfMonth(dayOfMonth), fDayOfWeek(dayOfWeek), fWeekInMonth(0), fMillisInDay(millisInDay),
43 fTimeRuleType(timeType) {
44 if (after) {
45 fDateRuleType = DateTimeRule::DOW_GEQ_DOM;
46 } else {
47 fDateRuleType = DateTimeRule::DOW_LEQ_DOM;
48 }
49}
50
51DateTimeRule::DateTimeRule(const DateTimeRule& source)
52: UObject(source),
53 fMonth(source.fMonth), fDayOfMonth(source.fDayOfMonth), fDayOfWeek(source.fDayOfWeek),
54 fWeekInMonth(source.fWeekInMonth), fMillisInDay(source.fMillisInDay),
55 fDateRuleType(source.fDateRuleType), fTimeRuleType(source.fTimeRuleType) {
56}
57
58DateTimeRule::~DateTimeRule() {
59}
60
61DateTimeRule*
62DateTimeRule::clone() const {
63 return new DateTimeRule(*this);
64}
65
66DateTimeRule&
67DateTimeRule::operator=(const DateTimeRule& right) {
68 if (this != &right) {
69 fMonth = right.fMonth;
70 fDayOfMonth = right.fDayOfMonth;
71 fDayOfWeek = right.fDayOfWeek;
72 fWeekInMonth = right.fWeekInMonth;
73 fMillisInDay = right.fMillisInDay;
74 fDateRuleType = right.fDateRuleType;
75 fTimeRuleType = right.fTimeRuleType;
76 }
77 return *this;
78}
79
80UBool
81DateTimeRule::operator==(const DateTimeRule& that) const {
82 return ((this == &that) ||
83 (getDynamicClassID() == that.getDynamicClassID() &&
84 fMonth == that.fMonth &&
85 fDayOfMonth == that.fDayOfMonth &&
86 fDayOfWeek == that.fDayOfWeek &&
87 fWeekInMonth == that.fWeekInMonth &&
88 fMillisInDay == that.fMillisInDay &&
89 fDateRuleType == that.fDateRuleType &&
90 fTimeRuleType == that.fTimeRuleType));
91}
92
93UBool
94DateTimeRule::operator!=(const DateTimeRule& that) const {
95 return !operator==(that);
96}
97
98DateTimeRule::DateRuleType
99DateTimeRule::getDateRuleType(void) const {
100 return fDateRuleType;
101}
102
103DateTimeRule::TimeRuleType
104DateTimeRule::getTimeRuleType(void) const {
105 return fTimeRuleType;
106}
107
108int32_t
109DateTimeRule::getRuleMonth(void) const {
110 return fMonth;
111}
112
113int32_t
114DateTimeRule::getRuleDayOfMonth(void) const {
115 return fDayOfMonth;
116}
117
118int32_t
119DateTimeRule::getRuleDayOfWeek(void) const {
120 return fDayOfWeek;
121}
122
123int32_t
124DateTimeRule::getRuleWeekInMonth(void) const {
125 return fWeekInMonth;
126}
127
128int32_t
129DateTimeRule::getRuleMillisInDay(void) const {
130 return fMillisInDay;
131}
132
133U_NAMESPACE_END
134
135#endif /* #if !UCONFIG_NO_FORMATTING */
136
137//eof