| // © 2022 and later: Unicode, Inc. and others. |
| // License & terms of use: http://www.unicode.org/copyright.html |
| #include "unicode/utypes.h" |
| |
| #if !UCONFIG_NO_FORMATTING |
| |
| #include "iso8601cal.h" |
| #include "unicode/gregocal.h" |
| |
| U_NAMESPACE_BEGIN |
| |
| UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ISO8601Calendar) |
| |
| ISO8601Calendar::ISO8601Calendar(const Locale& aLocale, UErrorCode& success) |
| : GregorianCalendar(aLocale, success) |
| { |
| UErrorCode fwStatus = U_ZERO_ERROR; |
| int32_t fwLength = aLocale.getKeywordValue("fw", nullptr, 0, fwStatus); |
| // Do not set first day of week for iso8601 to Monday if we have fw keyword |
| // and let the value set by the Calendar constructor to take care of it. |
| if (U_SUCCESS(fwStatus) && fwLength == 0) { |
| setFirstDayOfWeek(UCAL_MONDAY); |
| } |
| setMinimalDaysInFirstWeek(4); |
| } |
| |
| ISO8601Calendar::~ISO8601Calendar() |
| { |
| } |
| |
| ISO8601Calendar* ISO8601Calendar::clone() const |
| { |
| return new ISO8601Calendar(*this); |
| } |
| |
| const char *ISO8601Calendar::getType() const |
| { |
| return "iso8601"; |
| } |
| |
| U_NAMESPACE_END |
| |
| #endif |