|
ICU 73.2
73.2
|
00001 // © 2016 and later: Unicode, Inc. and others. 00002 // License & terms of use: http://www.unicode.org/copyright.html 00003 /* 00004 ******************************************************************************** 00005 * Copyright (C) 1997-2014, International Business Machines 00006 * Corporation and others. All Rights Reserved. 00007 ******************************************************************************** 00008 * 00009 * File CALENDAR.H 00010 * 00011 * Modification History: 00012 * 00013 * Date Name Description 00014 * 04/22/97 aliu Expanded and corrected comments and other header 00015 * contents. 00016 * 05/01/97 aliu Made equals(), before(), after() arguments const. 00017 * 05/20/97 aliu Replaced fAreFieldsSet with fAreFieldsInSync and 00018 * fAreAllFieldsSet. 00019 * 07/27/98 stephen Sync up with JDK 1.2 00020 * 11/15/99 weiv added YEAR_WOY and DOW_LOCAL 00021 * to EDateFields 00022 * 8/19/2002 srl Removed Javaisms 00023 * 11/07/2003 srl Update, clean up documentation. 00024 ******************************************************************************** 00025 */ 00026 00027 #ifndef CALENDAR_H 00028 #define CALENDAR_H 00029 00030 #include "unicode/utypes.h" 00031 00032 #if U_SHOW_CPLUSPLUS_API 00033 00038 #if !UCONFIG_NO_FORMATTING 00039 00040 #include "unicode/uobject.h" 00041 #include "unicode/locid.h" 00042 #include "unicode/timezone.h" 00043 #include "unicode/ucal.h" 00044 #include "unicode/umisc.h" 00045 00046 U_NAMESPACE_BEGIN 00047 00048 class ICUServiceFactory; 00049 00050 // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, 00051 // it is a return type for a virtual method (@internal) 00055 typedef int32_t UFieldResolutionTable[12][8]; 00056 00057 class BasicTimeZone; 00189 class U_I18N_API Calendar : public UObject { 00190 public: 00191 #ifndef U_FORCE_HIDE_DEPRECATED_API 00192 00198 enum EDateFields { 00199 #ifndef U_HIDE_DEPRECATED_API 00200 /* 00201 * ERA may be defined on other platforms. To avoid any potential problems undefined it here. 00202 */ 00203 #ifdef ERA 00204 #undef ERA 00205 #endif 00206 ERA, // Example: 0..1 00207 YEAR, // Example: 1..big number 00208 MONTH, // Example: 0..11 00209 WEEK_OF_YEAR, // Example: 1..53 00210 WEEK_OF_MONTH, // Example: 1..4 00211 DATE, // Example: 1..31 00212 DAY_OF_YEAR, // Example: 1..365 00213 DAY_OF_WEEK, // Example: 1..7 00214 DAY_OF_WEEK_IN_MONTH, // Example: 1..4, may be specified as -1 00215 AM_PM, // Example: 0..1 00216 HOUR, // Example: 0..11 00217 HOUR_OF_DAY, // Example: 0..23 00218 MINUTE, // Example: 0..59 00219 SECOND, // Example: 0..59 00220 MILLISECOND, // Example: 0..999 00221 ZONE_OFFSET, // Example: -12*U_MILLIS_PER_HOUR..12*U_MILLIS_PER_HOUR 00222 DST_OFFSET, // Example: 0 or U_MILLIS_PER_HOUR 00223 YEAR_WOY, // 'Y' Example: 1..big number - Year of Week of Year 00224 DOW_LOCAL, // 'e' Example: 1..7 - Day of Week / Localized 00225 00226 EXTENDED_YEAR, 00227 JULIAN_DAY, 00228 MILLISECONDS_IN_DAY, 00229 IS_LEAP_MONTH, 00230 00231 FIELD_COUNT = UCAL_FIELD_COUNT // See ucal.h for other fields. 00232 #endif /* U_HIDE_DEPRECATED_API */ 00233 }; 00234 #endif // U_FORCE_HIDE_DEPRECATED_API 00235 00236 #ifndef U_HIDE_DEPRECATED_API 00237 00243 enum EDaysOfWeek { 00244 SUNDAY = 1, 00245 MONDAY, 00246 TUESDAY, 00247 WEDNESDAY, 00248 THURSDAY, 00249 FRIDAY, 00250 SATURDAY 00251 }; 00252 00257 enum EMonths { 00258 JANUARY, 00259 FEBRUARY, 00260 MARCH, 00261 APRIL, 00262 MAY, 00263 JUNE, 00264 JULY, 00265 AUGUST, 00266 SEPTEMBER, 00267 OCTOBER, 00268 NOVEMBER, 00269 DECEMBER, 00270 UNDECIMBER 00271 }; 00272 00277 enum EAmpm { 00278 AM, 00279 PM 00280 }; 00281 #endif /* U_HIDE_DEPRECATED_API */ 00282 00287 virtual ~Calendar(); 00288 00295 virtual Calendar* clone() const = 0; 00296 00308 static Calendar* U_EXPORT2 createInstance(UErrorCode& success); 00309 00322 static Calendar* U_EXPORT2 createInstance(TimeZone* zoneToAdopt, UErrorCode& success); 00323 00335 static Calendar* U_EXPORT2 createInstance(const TimeZone& zone, UErrorCode& success); 00336 00347 static Calendar* U_EXPORT2 createInstance(const Locale& aLocale, UErrorCode& success); 00348 00362 static Calendar* U_EXPORT2 createInstance(TimeZone* zoneToAdopt, const Locale& aLocale, UErrorCode& success); 00363 00376 static Calendar* U_EXPORT2 createInstance(const TimeZone& zone, const Locale& aLocale, UErrorCode& success); 00377 00387 static const Locale* U_EXPORT2 getAvailableLocales(int32_t& count); 00388 00389 00406 static StringEnumeration* U_EXPORT2 getKeywordValuesForLocale(const char* key, 00407 const Locale& locale, UBool commonlyUsed, UErrorCode& status); 00408 00416 static UDate U_EXPORT2 getNow(void); 00417 00431 inline UDate getTime(UErrorCode& status) const { return getTimeInMillis(status); } 00432 00443 inline void setTime(UDate date, UErrorCode& status) { setTimeInMillis(date, status); } 00444 00456 virtual bool operator==(const Calendar& that) const; 00457 00466 bool operator!=(const Calendar& that) const {return !operator==(that);} 00467 00478 virtual UBool isEquivalentTo(const Calendar& other) const; 00479 00494 UBool equals(const Calendar& when, UErrorCode& status) const; 00495 00509 UBool before(const Calendar& when, UErrorCode& status) const; 00510 00524 UBool after(const Calendar& when, UErrorCode& status) const; 00525 00526 #ifndef U_FORCE_HIDE_DEPRECATED_API 00527 00547 virtual void add(EDateFields field, int32_t amount, UErrorCode& status); 00548 #endif // U_FORCE_HIDE_DEPRECATED_API 00549 00570 virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode& status); 00571 00572 #ifndef U_HIDE_DEPRECATED_API 00573 00605 inline void roll(EDateFields field, UBool up, UErrorCode& status); 00606 #endif /* U_HIDE_DEPRECATED_API */ 00607 00640 inline void roll(UCalendarDateFields field, UBool up, UErrorCode& status); 00641 00642 #ifndef U_FORCE_HIDE_DEPRECATED_API 00643 00674 virtual void roll(EDateFields field, int32_t amount, UErrorCode& status); 00675 #endif // U_FORCE_HIDE_DEPRECATED_API 00676 00708 virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status); 00709 00710 #ifndef U_FORCE_HIDE_DEPRECATED_API 00711 00766 virtual int32_t fieldDifference(UDate when, EDateFields field, UErrorCode& status); 00767 #endif // U_FORCE_HIDE_DEPRECATED_API 00768 00824 virtual int32_t fieldDifference(UDate when, UCalendarDateFields field, UErrorCode& status); 00825 00834 void adoptTimeZone(TimeZone* value); 00835 00843 void setTimeZone(const TimeZone& zone); 00844 00853 const TimeZone& getTimeZone(void) const; 00854 00863 TimeZone* orphanTimeZone(void); 00864 00873 virtual UBool inDaylightTime(UErrorCode& status) const; 00874 00887 void setLenient(UBool lenient); 00888 00895 UBool isLenient(void) const; 00896 00917 void setRepeatedWallTimeOption(UCalendarWallTimeOption option); 00918 00928 UCalendarWallTimeOption getRepeatedWallTimeOption(void) const; 00929 00951 void setSkippedWallTimeOption(UCalendarWallTimeOption option); 00952 00963 UCalendarWallTimeOption getSkippedWallTimeOption(void) const; 00964 00971 void setFirstDayOfWeek(UCalendarDaysOfWeek value); 00972 00973 #ifndef U_HIDE_DEPRECATED_API 00974 00980 EDaysOfWeek getFirstDayOfWeek(void) const; 00981 #endif /* U_HIDE_DEPRECATED_API */ 00982 00990 UCalendarDaysOfWeek getFirstDayOfWeek(UErrorCode &status) const; 00991 01001 void setMinimalDaysInFirstWeek(uint8_t value); 01002 01012 uint8_t getMinimalDaysInFirstWeek(void) const; 01013 01014 #ifndef U_FORCE_HIDE_DEPRECATED_API 01015 01023 virtual int32_t getMinimum(EDateFields field) const; 01024 #endif // U_FORCE_HIDE_DEPRECATED_API 01025 01034 virtual int32_t getMinimum(UCalendarDateFields field) const; 01035 01036 #ifndef U_FORCE_HIDE_DEPRECATED_API 01037 01045 virtual int32_t getMaximum(EDateFields field) const; 01046 #endif // U_FORCE_HIDE_DEPRECATED_API 01047 01056 virtual int32_t getMaximum(UCalendarDateFields field) const; 01057 01058 #ifndef U_FORCE_HIDE_DEPRECATED_API 01059 01067 virtual int32_t getGreatestMinimum(EDateFields field) const; 01068 #endif // U_FORCE_HIDE_DEPRECATED_API 01069 01078 virtual int32_t getGreatestMinimum(UCalendarDateFields field) const; 01079 01080 #ifndef U_FORCE_HIDE_DEPRECATED_API 01081 01089 virtual int32_t getLeastMaximum(EDateFields field) const; 01090 #endif // U_FORCE_HIDE_DEPRECATED_API 01091 01100 virtual int32_t getLeastMaximum(UCalendarDateFields field) const; 01101 01102 #ifndef U_HIDE_DEPRECATED_API 01103 01117 int32_t getActualMinimum(EDateFields field, UErrorCode& status) const; 01118 #endif /* U_HIDE_DEPRECATED_API */ 01119 01134 virtual int32_t getActualMinimum(UCalendarDateFields field, UErrorCode& status) const; 01135 01152 virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const; 01153 01167 int32_t get(UCalendarDateFields field, UErrorCode& status) const; 01168 01177 UBool isSet(UCalendarDateFields field) const; 01178 01186 void set(UCalendarDateFields field, int32_t value); 01187 01198 void set(int32_t year, int32_t month, int32_t date); 01199 01212 void set(int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute); 01213 01227 void set(int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute, int32_t second); 01228 01235 void clear(void); 01236 01245 void clear(UCalendarDateFields field); 01246 01262 virtual UClassID getDynamicClassID(void) const override = 0; 01263 01296 virtual const char * getType() const = 0; 01297 01314 virtual UCalendarWeekdayType getDayOfWeekType(UCalendarDaysOfWeek dayOfWeek, UErrorCode &status) const; 01315 01330 virtual int32_t getWeekendTransition(UCalendarDaysOfWeek dayOfWeek, UErrorCode &status) const; 01331 01341 virtual UBool isWeekend(UDate date, UErrorCode &status) const; 01342 01350 virtual UBool isWeekend(void) const; 01351 01352 #ifndef U_FORCE_HIDE_DRAFT_API 01353 01367 virtual bool inTemporalLeapYear(UErrorCode& status) const; 01368 01387 virtual const char* getTemporalMonthCode(UErrorCode& status) const; 01388 01408 virtual void setTemporalMonthCode(const char* temporalMonth, UErrorCode& status); 01409 01410 #endif // U_FORCE_HIDE_DRAFT_API 01411 01412 protected: 01413 01422 Calendar(UErrorCode& success); 01423 01430 Calendar(const Calendar& source); 01431 01438 Calendar& operator=(const Calendar& right); 01439 01450 Calendar(TimeZone* zone, const Locale& aLocale, UErrorCode& success); 01451 01461 Calendar(const TimeZone& zone, const Locale& aLocale, UErrorCode& success); 01462 01471 virtual void computeTime(UErrorCode& status); 01472 01484 virtual void computeFields(UErrorCode& status); 01485 01495 double getTimeInMillis(UErrorCode& status) const; 01496 01505 void setTimeInMillis( double millis, UErrorCode& status ); 01506 01516 void complete(UErrorCode& status); 01517 01518 #ifndef U_HIDE_DEPRECATED_API 01519 01527 inline int32_t internalGet(EDateFields field) const {return fFields[field];} 01528 #endif /* U_HIDE_DEPRECATED_API */ 01529 01530 #ifndef U_HIDE_INTERNAL_API 01531 01541 inline int32_t internalGet(UCalendarDateFields field, int32_t defaultValue) const {return fStamp[field]>kUnset ? fFields[field] : defaultValue;} 01542 01551 inline int32_t internalGet(UCalendarDateFields field) const {return fFields[field];} 01552 #endif /* U_HIDE_INTERNAL_API */ 01553 01563 virtual int32_t internalGetMonth() const; 01564 01576 virtual int32_t internalGetMonth(int32_t defaultValue) const; 01577 01578 #ifndef U_HIDE_DEPRECATED_API 01579 01588 void internalSet(EDateFields field, int32_t value); 01589 #endif /* U_HIDE_DEPRECATED_API */ 01590 01600 inline void internalSet(UCalendarDateFields field, int32_t value); 01601 01608 virtual void prepareGetActual(UCalendarDateFields field, UBool isMinimum, UErrorCode &status); 01609 01614 enum ELimitType { 01615 #ifndef U_HIDE_INTERNAL_API 01616 UCAL_LIMIT_MINIMUM = 0, 01617 UCAL_LIMIT_GREATEST_MINIMUM, 01618 UCAL_LIMIT_LEAST_MAXIMUM, 01619 UCAL_LIMIT_MAXIMUM, 01620 UCAL_LIMIT_COUNT 01621 #endif /* U_HIDE_INTERNAL_API */ 01622 }; 01623 01645 virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const = 0; 01646 01654 virtual int32_t getLimit(UCalendarDateFields field, ELimitType limitType) const; 01655 01669 virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, 01670 UBool useMonth) const = 0; 01671 01679 virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const ; 01680 01688 virtual int32_t handleGetYearLength(int32_t eyear) const; 01689 01690 01699 virtual int32_t handleGetExtendedYear() = 0; 01700 01709 virtual int32_t handleComputeJulianDay(UCalendarDateFields bestField); 01710 01719 virtual int32_t handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t woy); 01720 01727 virtual void validateField(UCalendarDateFields field, UErrorCode &status); 01728 01729 #ifndef U_HIDE_INTERNAL_API 01730 01736 int32_t computeJulianDay(); 01737 01745 double computeMillisInDay(); 01746 01756 int32_t computeZoneOffset(double millis, double millisInDay, UErrorCode &ec); 01757 01758 01767 int32_t newestStamp(UCalendarDateFields start, UCalendarDateFields end, int32_t bestSoFar) const; 01768 01775 static constexpr int32_t kResolveSTOP = -1; 01785 static constexpr int32_t kResolveRemap = 32; 01786 01792 static const UFieldResolutionTable kDatePrecedence[]; 01793 01799 static const UFieldResolutionTable kYearPrecedence[]; 01800 01806 static const UFieldResolutionTable kDOWPrecedence[]; 01807 01813 static const UFieldResolutionTable kMonthPrecedence[]; 01814 01842 UCalendarDateFields resolveFields(const UFieldResolutionTable *precedenceTable) const; 01843 #endif /* U_HIDE_INTERNAL_API */ 01844 01845 01849 virtual const UFieldResolutionTable* getFieldResolutionTable() const; 01850 01851 #ifndef U_HIDE_INTERNAL_API 01852 01857 UCalendarDateFields newerField(UCalendarDateFields defaultField, UCalendarDateFields alternateField) const; 01858 #endif /* U_HIDE_INTERNAL_API */ 01859 01860 01861 private: 01870 int32_t getActualHelper(UCalendarDateFields field, int32_t startValue, int32_t endValue, UErrorCode &status) const; 01871 01872 01873 protected: 01878 UBool fIsTimeSet; 01879 01890 UBool fAreFieldsSet; 01891 01897 UBool fAreAllFieldsSet; 01898 01906 UBool fAreFieldsVirtuallySet; 01907 01914 UDate internalGetTime(void) const { return fTime; } 01915 01923 void internalSetTime(UDate time) { fTime = time; } 01924 01929 int32_t fFields[UCAL_FIELD_COUNT]; 01930 01931 #ifndef U_FORCE_HIDE_DEPRECATED_API 01932 01936 UBool fIsSet[UCAL_FIELD_COUNT]; 01937 #endif // U_FORCE_HIDE_DEPRECATED_API 01938 01942 enum { 01943 kUnset = 0, 01944 kInternallySet, 01945 kMinimumUserStamp 01946 }; 01947 01954 int32_t fStamp[UCAL_FIELD_COUNT]; 01955 01980 virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); 01981 01982 #ifndef U_HIDE_INTERNAL_API 01983 01988 int32_t getGregorianYear() const { 01989 return fGregorianYear; 01990 } 01991 01997 int32_t getGregorianMonth() const { 01998 return fGregorianMonth; 01999 } 02000 02006 int32_t getGregorianDayOfYear() const { 02007 return fGregorianDayOfYear; 02008 } 02009 02015 int32_t getGregorianDayOfMonth() const { 02016 return fGregorianDayOfMonth; 02017 } 02018 #endif /* U_HIDE_INTERNAL_API */ 02019 02026 virtual int32_t getDefaultMonthInYear(int32_t eyear) ; 02027 02028 02036 virtual int32_t getDefaultDayInMonth(int32_t eyear, int32_t month); 02037 02038 //------------------------------------------------------------------------- 02039 // Protected utility methods for use by subclasses. These are very handy 02040 // for implementing add, roll, and computeFields. 02041 //------------------------------------------------------------------------- 02042 02072 virtual void pinField(UCalendarDateFields field, UErrorCode& status); 02073 02117 int32_t weekNumber(int32_t desiredDay, int32_t dayOfPeriod, int32_t dayOfWeek); 02118 02119 02120 #ifndef U_HIDE_INTERNAL_API 02121 02151 inline int32_t weekNumber(int32_t dayOfPeriod, int32_t dayOfWeek); 02152 02157 int32_t getLocalDOW(); 02158 #endif /* U_HIDE_INTERNAL_API */ 02159 02160 private: 02161 02165 int32_t fNextStamp;// = MINIMUM_USER_STAMP; 02166 02171 void recalculateStamp(); 02172 02176 UDate fTime; 02177 02181 UBool fLenient; 02182 02187 TimeZone* fZone; 02188 02193 UCalendarWallTimeOption fRepeatedWallTime; 02194 02199 UCalendarWallTimeOption fSkippedWallTime; 02200 02209 UCalendarDaysOfWeek fFirstDayOfWeek; 02210 uint8_t fMinimalDaysInFirstWeek; 02211 UCalendarDaysOfWeek fWeekendOnset; 02212 int32_t fWeekendOnsetMillis; 02213 UCalendarDaysOfWeek fWeekendCease; 02214 int32_t fWeekendCeaseMillis; 02215 02226 void setWeekData(const Locale& desiredLocale, const char *type, UErrorCode& success); 02227 02237 void updateTime(UErrorCode& status); 02238 02244 int32_t fGregorianYear; 02245 02251 int32_t fGregorianMonth; 02252 02258 int32_t fGregorianDayOfYear; 02259 02265 int32_t fGregorianDayOfMonth; 02266 02267 /* calculations */ 02268 02275 void computeGregorianAndDOWFields(int32_t julianDay, UErrorCode &ec); 02276 02277 protected: 02278 02286 void computeGregorianFields(int32_t julianDay, UErrorCode &ec); 02287 02288 private: 02289 02310 void computeWeekFields(UErrorCode &ec); 02311 02312 02320 void validateFields(UErrorCode &status); 02321 02329 void validateField(UCalendarDateFields field, int32_t min, int32_t max, UErrorCode& status); 02330 02331 protected: 02332 #ifndef U_HIDE_INTERNAL_API 02333 02342 static uint8_t julianDayToDayOfWeek(double julian); 02343 #endif /* U_HIDE_INTERNAL_API */ 02344 02345 private: 02346 char validLocale[ULOC_FULLNAME_CAPACITY]; 02347 char actualLocale[ULOC_FULLNAME_CAPACITY]; 02348 02349 public: 02350 #if !UCONFIG_NO_SERVICE 02351 02355 #ifndef U_HIDE_INTERNAL_API 02356 02362 static StringEnumeration* getAvailableLocales(void); 02363 02377 static URegistryKey registerFactory(ICUServiceFactory* toAdopt, UErrorCode& status); 02378 02394 static UBool unregister(URegistryKey key, UErrorCode& status); 02395 #endif /* U_HIDE_INTERNAL_API */ 02396 02401 friend class CalendarFactory; 02402 02407 friend class CalendarService; 02408 02413 friend class DefaultCalendarFactory; 02414 #endif /* !UCONFIG_NO_SERVICE */ 02415 02420 virtual UBool haveDefaultCentury() const = 0; 02421 02426 virtual UDate defaultCenturyStart() const = 0; 02431 virtual int32_t defaultCenturyStartYear() const = 0; 02432 02439 Locale getLocale(ULocDataLocaleType type, UErrorCode &status) const; 02440 02446 virtual int32_t getRelatedYear(UErrorCode &status) const; 02447 02453 virtual void setRelatedYear(int32_t year); 02454 02455 #ifndef U_HIDE_INTERNAL_API 02456 02462 const char* getLocaleID(ULocDataLocaleType type, UErrorCode &status) const; 02463 #endif /* U_HIDE_INTERNAL_API */ 02464 02465 private: 02470 BasicTimeZone* getBasicTimeZone() const; 02471 02479 UBool getImmediatePreviousZoneTransition(UDate base, UDate *transitionTime, UErrorCode& status) const; 02480 02481 public: 02482 #ifndef U_HIDE_INTERNAL_API 02483 02491 static Calendar * U_EXPORT2 makeInstance( 02492 const Locale &locale, UErrorCode &status); 02493 02504 static void U_EXPORT2 getCalendarTypeFromLocale( 02505 const Locale &locale, 02506 char *typeBuffer, 02507 int32_t typeBufferSize, 02508 UErrorCode &status); 02509 #endif /* U_HIDE_INTERNAL_API */ 02510 }; 02511 02512 // ------------------------------------- 02513 02514 inline Calendar* 02515 Calendar::createInstance(TimeZone* zone, UErrorCode& errorCode) 02516 { 02517 // since the Locale isn't specified, use the default locale 02518 return createInstance(zone, Locale::getDefault(), errorCode); 02519 } 02520 02521 // ------------------------------------- 02522 02523 inline void 02524 Calendar::roll(UCalendarDateFields field, UBool up, UErrorCode& status) 02525 { 02526 roll(field, (int32_t)(up ? +1 : -1), status); 02527 } 02528 02529 #ifndef U_HIDE_DEPRECATED_API 02530 inline void 02531 Calendar::roll(EDateFields field, UBool up, UErrorCode& status) 02532 { 02533 roll((UCalendarDateFields) field, up, status); 02534 } 02535 #endif /* U_HIDE_DEPRECATED_API */ 02536 02537 02538 // ------------------------------------- 02539 02545 inline void 02546 Calendar::internalSet(UCalendarDateFields field, int32_t value) 02547 { 02548 fFields[field] = value; 02549 fStamp[field] = kInternallySet; 02550 fIsSet[field] = true; // Remove later 02551 } 02552 02553 02554 #ifndef U_HIDE_INTERNAL_API 02555 inline int32_t Calendar::weekNumber(int32_t dayOfPeriod, int32_t dayOfWeek) 02556 { 02557 return weekNumber(dayOfPeriod, dayOfPeriod, dayOfWeek); 02558 } 02559 #endif /* U_HIDE_INTERNAL_API */ 02560 02561 U_NAMESPACE_END 02562 02563 #endif /* #if !UCONFIG_NO_FORMATTING */ 02564 02565 #endif /* U_SHOW_CPLUSPLUS_API */ 02566 02567 #endif // _CALENDAR
1.7.6.1