return E_INVALID_ARG;
}
-result
-_LocaleData::SetStartTimeRule(IcuSimpleTimeZone& zone, const TimeRule* pOspTimeRule)
-{
- if (pOspTimeRule)
- {
- UErrorCode status = U_ZERO_ERROR;
- IcuDateTimeRule::TimeRuleType icuTimeRuleType;
-
- DstRuleMode ospRuleMode = static_cast< DstRuleMode >(pOspTimeRule->GetRuleMode());
- Tizen::System::TimeMode ospTimeMode = pOspTimeRule->GetTimeMode();
-
- switch (ospTimeMode)
- {
- case Tizen::System::UTC_TIME:
- {
- icuTimeRuleType = IcuDateTimeRule::UTC_TIME;
- break;
- }
-
- case Tizen::System::STANDARD_TIME:
- {
- icuTimeRuleType = IcuDateTimeRule::STANDARD_TIME;
- break;
- }
-
- case Tizen::System::WALL_TIME:
- default:
- {
- icuTimeRuleType = IcuDateTimeRule::WALL_TIME;
- break;
- }
- }
-
- int time = ((pOspTimeRule->GetHour() * 60) + pOspTimeRule->GetMinute()) * 60 * 1000;
-
- switch (ospRuleMode)
- {
- case EXACT_DAY:
- {
- zone.setStartRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case DAY_OF_WEEK_IN_MONTH:
- {
- zone.setStartRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetWeek(),
- pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case AFTER_THE_SPECIFIED_DAY:
- {
- zone.setStartRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case BEFORE_THE_SPECIFIED_DAY:
- {
- zone.setStartRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- -pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case BACKWARD_FROM_END_OF_MONTH:
- {
- zone.setStartRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetWeek() * -1,
- 0,
- time,
- icuTimeRuleType,
- status);
- break;
- }
- }
- return U_SUCCESS(status) ? E_SUCCESS : E_SYSTEM;
- }
- return E_INVALID_ARG;
-}
-
-result
-_LocaleData::SetEndTimeRule(IcuSimpleTimeZone& zone, const TimeRule* pOspTimeRule)
-{
- if (pOspTimeRule)
- {
- UErrorCode status = U_ZERO_ERROR;
- IcuDateTimeRule::TimeRuleType icuTimeRuleType;
-
- DstRuleMode ospRuleMode = static_cast< DstRuleMode >(pOspTimeRule->GetRuleMode());
- Tizen::System::TimeMode ospTimeMode = pOspTimeRule->GetTimeMode();
-
- switch (ospTimeMode)
- {
- case Tizen::System::UTC_TIME:
- {
- icuTimeRuleType = IcuDateTimeRule::UTC_TIME;
- break;
- }
-
- case Tizen::System::STANDARD_TIME:
- {
- icuTimeRuleType = IcuDateTimeRule::STANDARD_TIME;
- break;
- }
-
- case Tizen::System::WALL_TIME:
- default:
- {
- icuTimeRuleType = IcuDateTimeRule::WALL_TIME;
- break;
- }
- }
-
- int time = ((pOspTimeRule->GetHour() * 60) + pOspTimeRule->GetMinute()) * 60 * 1000;
-
- switch (ospRuleMode)
- {
- case EXACT_DAY:
- {
- zone.setEndRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case DAY_OF_WEEK_IN_MONTH:
- {
- zone.setEndRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetWeek(),
- pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case AFTER_THE_SPECIFIED_DAY:
- {
- zone.setEndRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case BEFORE_THE_SPECIFIED_DAY:
- {
- zone.setEndRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetDay(),
- -pOspTimeRule->GetDayOfWeek(),
- time,
- icuTimeRuleType,
- status);
- break;
- }
-
- case BACKWARD_FROM_END_OF_MONTH:
- {
- zone.setEndRule(
- pOspTimeRule->GetMonth(),
- pOspTimeRule->GetWeek() * -1,
- 0,
- time,
- icuTimeRuleType,
- status);
- break;
- }
- }
- return U_SUCCESS(status) ? E_SUCCESS : E_SYSTEM;
- }
- return E_INVALID_ARG;
-}
result
_LocaleData::FormatDateTime(const DateTime& date, String& str)
return E_UNSUPPORTED_OPERATION;
}
-void
-_LocaleData::SetGregorianWeekCountData(const Locale& ospLocale, DayOfWeek& firstDayOfWeek, short& minDaysInFirstWeek)
-{
- UErrorCode success = U_ZERO_ERROR;
- IcuLocale icuLocale;
-
- icuLocale = GetIcuLocale(ospLocale);
- result r = GetLastResult();
- SysAssert(r == E_SUCCESS);
-
- GregorianCalendar gc(icuLocale, success);
- SysAssert(U_SUCCESS(success));
-
- firstDayOfWeek = (DayOfWeek) gc.getFirstDayOfWeek(); // Set __firstDayOfWeek from ICU data
- minDaysInFirstWeek = 1; // To align with 2.0 version
-// minDaysInFirstWeek = (short) gc.getMinimalDaysInFirstWeek(); // Set __minDaysInFirstWeek from ICU data
-}
_LocaleData::_LocaleData(void)
: __icuLocale()