You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
3.9 KiB
142 lines
3.9 KiB
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/*
|
|
*******************************************************************************
|
|
* Copyright (C) 2007-2012, International Business Machines Corporation and
|
|
* others. All Rights Reserved.
|
|
*******************************************************************************
|
|
*/
|
|
|
|
#include "utypeinfo.h" // for 'typeid' to work
|
|
|
|
#include "unicode/utypes.h"
|
|
|
|
#if !UCONFIG_NO_FORMATTING
|
|
|
|
#include "unicode/dtrule.h"
|
|
|
|
U_NAMESPACE_BEGIN
|
|
|
|
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DateTimeRule)
|
|
|
|
DateTimeRule::DateTimeRule(int32_t month,
|
|
int32_t dayOfMonth,
|
|
int32_t millisInDay,
|
|
TimeRuleType timeType)
|
|
: fMonth(month), fDayOfMonth(dayOfMonth), fDayOfWeek(0), fWeekInMonth(0), fMillisInDay(millisInDay),
|
|
fDateRuleType(DateTimeRule::DOM), fTimeRuleType(timeType) {
|
|
}
|
|
|
|
DateTimeRule::DateTimeRule(int32_t month,
|
|
int32_t weekInMonth,
|
|
int32_t dayOfWeek,
|
|
int32_t millisInDay,
|
|
TimeRuleType timeType)
|
|
: fMonth(month), fDayOfMonth(0), fDayOfWeek(dayOfWeek), fWeekInMonth(weekInMonth), fMillisInDay(millisInDay),
|
|
fDateRuleType(DateTimeRule::DOW), fTimeRuleType(timeType) {
|
|
}
|
|
|
|
DateTimeRule::DateTimeRule(int32_t month,
|
|
int32_t dayOfMonth,
|
|
int32_t dayOfWeek,
|
|
UBool after,
|
|
int32_t millisInDay,
|
|
TimeRuleType timeType)
|
|
: UObject(),
|
|
fMonth(month), fDayOfMonth(dayOfMonth), fDayOfWeek(dayOfWeek), fWeekInMonth(0), fMillisInDay(millisInDay),
|
|
fTimeRuleType(timeType) {
|
|
if (after) {
|
|
fDateRuleType = DateTimeRule::DOW_GEQ_DOM;
|
|
} else {
|
|
fDateRuleType = DateTimeRule::DOW_LEQ_DOM;
|
|
}
|
|
}
|
|
|
|
DateTimeRule::DateTimeRule(const DateTimeRule& source)
|
|
: UObject(source),
|
|
fMonth(source.fMonth), fDayOfMonth(source.fDayOfMonth), fDayOfWeek(source.fDayOfWeek),
|
|
fWeekInMonth(source.fWeekInMonth), fMillisInDay(source.fMillisInDay),
|
|
fDateRuleType(source.fDateRuleType), fTimeRuleType(source.fTimeRuleType) {
|
|
}
|
|
|
|
DateTimeRule::~DateTimeRule() {
|
|
}
|
|
|
|
DateTimeRule*
|
|
DateTimeRule::clone() const {
|
|
return new DateTimeRule(*this);
|
|
}
|
|
|
|
DateTimeRule&
|
|
DateTimeRule::operator=(const DateTimeRule& right) {
|
|
if (this != &right) {
|
|
fMonth = right.fMonth;
|
|
fDayOfMonth = right.fDayOfMonth;
|
|
fDayOfWeek = right.fDayOfWeek;
|
|
fWeekInMonth = right.fWeekInMonth;
|
|
fMillisInDay = right.fMillisInDay;
|
|
fDateRuleType = right.fDateRuleType;
|
|
fTimeRuleType = right.fTimeRuleType;
|
|
}
|
|
return *this;
|
|
}
|
|
|
|
UBool
|
|
DateTimeRule::operator==(const DateTimeRule& that) const {
|
|
return ((this == &that) ||
|
|
(typeid(*this) == typeid(that) &&
|
|
fMonth == that.fMonth &&
|
|
fDayOfMonth == that.fDayOfMonth &&
|
|
fDayOfWeek == that.fDayOfWeek &&
|
|
fWeekInMonth == that.fWeekInMonth &&
|
|
fMillisInDay == that.fMillisInDay &&
|
|
fDateRuleType == that.fDateRuleType &&
|
|
fTimeRuleType == that.fTimeRuleType));
|
|
}
|
|
|
|
UBool
|
|
DateTimeRule::operator!=(const DateTimeRule& that) const {
|
|
return !operator==(that);
|
|
}
|
|
|
|
DateTimeRule::DateRuleType
|
|
DateTimeRule::getDateRuleType(void) const {
|
|
return fDateRuleType;
|
|
}
|
|
|
|
DateTimeRule::TimeRuleType
|
|
DateTimeRule::getTimeRuleType(void) const {
|
|
return fTimeRuleType;
|
|
}
|
|
|
|
int32_t
|
|
DateTimeRule::getRuleMonth(void) const {
|
|
return fMonth;
|
|
}
|
|
|
|
int32_t
|
|
DateTimeRule::getRuleDayOfMonth(void) const {
|
|
return fDayOfMonth;
|
|
}
|
|
|
|
int32_t
|
|
DateTimeRule::getRuleDayOfWeek(void) const {
|
|
return fDayOfWeek;
|
|
}
|
|
|
|
int32_t
|
|
DateTimeRule::getRuleWeekInMonth(void) const {
|
|
return fWeekInMonth;
|
|
}
|
|
|
|
int32_t
|
|
DateTimeRule::getRuleMillisInDay(void) const {
|
|
return fMillisInDay;
|
|
}
|
|
|
|
U_NAMESPACE_END
|
|
|
|
#endif /* #if !UCONFIG_NO_FORMATTING */
|
|
|
|
//eof
|