// © 2022 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html #ifndef ISO8601CAL_H #define ISO8601CAL_H #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING #include "unicode/calendar.h" #include "unicode/gregocal.h" #include "unicode/timezone.h" U_NAMESPACE_BEGIN /** * Concrete class which provides the ISO8601 calendar. *

* ISO8601Calendar is a subclass of GregorianCalendar * that the first day of a week is Monday and the minimal days in the first * week of a year or month is four days. *

* The ISO8601 calendar is identical to the Gregorian calendar in all respects * except for the first day of week and the minimal days in the first week * of a year. * @internal */ class ISO8601Calendar : public GregorianCalendar { public: //------------------------------------------------------------------------- // Constructors... //------------------------------------------------------------------------- /** * Constructs a DangiCalendar based on the current time in the default time zone * with the given locale. * * @param aLocale The given locale. * @param success Indicates the status of ISO8601Calendar object construction. * Returns U_ZERO_ERROR if constructed successfully. * @internal */ ISO8601Calendar(const Locale& aLocale, UErrorCode &success); /** * Copy Constructor * @internal */ ISO8601Calendar(const ISO8601Calendar& other) = default; /** * Destructor. * @internal */ virtual ~ISO8601Calendar(); /** * Clone. * @internal */ virtual ISO8601Calendar* clone() const override; // UObject stuff public: /** * @return 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. * @internal */ virtual UClassID getDynamicClassID() const override; /** * 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() == * Derived::getStaticClassID()) ... * * @return The class ID for all objects of this class. * @internal */ U_I18N_API static UClassID U_EXPORT2 getStaticClassID(); /** * return the calendar type, "iso8601". * * @return calendar type * @internal */ virtual const char * getType() const override; private: ISO8601Calendar(); // default constructor not implemented }; U_NAMESPACE_END #endif #endif