34 #if !UCONFIG_NO_FORMATTING
44 class ICUServiceFactory;
210 #ifndef U_HIDE_DEPRECATED_API
225 DAY_OF_WEEK_IN_MONTH,
246 #ifndef U_HIDE_DEPRECATED_API
305 virtual Calendar* clone(
void)
const = 0;
397 static const Locale* U_EXPORT2 getAvailableLocales(int32_t& count);
426 static UDate U_EXPORT2 getNow(
void);
556 virtual void add(EDateFields field, int32_t amount,
UErrorCode& status);
580 #ifndef U_HIDE_DEPRECATED_API
681 virtual void roll(EDateFields field, int32_t amount,
UErrorCode& status);
771 virtual int32_t fieldDifference(
UDate when, EDateFields field,
UErrorCode& status);
838 void adoptTimeZone(
TimeZone* value);
847 void setTimeZone(
const TimeZone& zone);
857 const TimeZone& getTimeZone(
void)
const;
891 void setLenient(
UBool lenient);
899 UBool isLenient(
void)
const;
901 #ifndef U_HIDE_DRAFT_API
971 #ifndef U_HIDE_DEPRECATED_API
978 void setFirstDayOfWeek(EDaysOfWeek value);
989 #ifndef U_HIDE_DEPRECATED_API
996 EDaysOfWeek getFirstDayOfWeek(
void)
const;
1017 void setMinimalDaysInFirstWeek(uint8_t value);
1028 uint8_t getMinimalDaysInFirstWeek(
void)
const;
1038 virtual int32_t getMinimum(EDateFields field)
const;
1058 virtual int32_t getMaximum(EDateFields field)
const;
1078 virtual int32_t getGreatestMinimum(EDateFields field)
const;
1098 virtual int32_t getLeastMaximum(EDateFields field)
const;
1110 #ifndef U_HIDE_DEPRECATED_API
1125 int32_t getActualMinimum(EDateFields field,
UErrorCode& status)
const;
1144 #ifndef U_HIDE_DEPRECATED_API
1161 int32_t getActualMaximum(EDateFields field,
UErrorCode& status)
const;
1182 #ifndef U_HIDE_DEPRECATED_API
1196 int32_t
get(EDateFields field,
UErrorCode& status)
const;
1214 #ifndef U_HIDE_DEPRECATED_API
1223 UBool isSet(EDateFields field)
const;
1236 #ifndef U_HIDE_DEPRECATED_API
1244 void set(EDateFields field, int32_t value);
1266 void set(int32_t year, int32_t month, int32_t date);
1280 void set(int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute);
1295 void set(int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute, int32_t second);
1305 #ifndef U_HIDE_DEPRECATED_API
1314 void clear(EDateFields field);
1376 virtual const char * getType()
const = 0;
1429 virtual UBool isWeekend(
void)
const;
1490 virtual void computeTime(
UErrorCode& status);
1503 virtual void computeFields(
UErrorCode& status);
1514 double getTimeInMillis(
UErrorCode& status)
const;
1524 void setTimeInMillis(
double millis,
UErrorCode& status );
1537 #ifndef U_HIDE_DEPRECATED_API
1549 #ifndef U_HIDE_INTERNAL_API
1573 #ifndef U_HIDE_DEPRECATED_API
1583 void internalSet(EDateFields field, int32_t value);
1610 UCAL_LIMIT_MINIMUM = 0,
1611 UCAL_LIMIT_GREATEST_MINIMUM,
1612 UCAL_LIMIT_LEAST_MAXIMUM,
1638 virtual int32_t handleGetLimit(
UCalendarDateFields field, ELimitType limitType)
const = 0;
1663 virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month,
1664 UBool useMonth)
const = 0;
1673 virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month)
const ;
1682 virtual int32_t handleGetYearLength(int32_t eyear)
const;
1693 virtual int32_t handleGetExtendedYear() = 0;
1713 virtual int32_t handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t woy);
1715 #ifndef U_HIDE_INTERNAL_API
1722 int32_t computeJulianDay();
1731 int32_t computeMillisInDay();
1742 int32_t computeZoneOffset(
double millis, int32_t millisInDay,
UErrorCode &ec);
1824 #ifndef U_HIDE_INTERNAL_API
1951 virtual void handleComputeFields(int32_t julianDay,
UErrorCode &status);
1953 #ifndef U_HIDE_INTERNAL_API
1960 return fGregorianYear;
1969 return fGregorianMonth;
1978 return fGregorianDayOfYear;
1987 return fGregorianDayOfMonth;
1997 virtual int32_t getDefaultMonthInYear(int32_t eyear) ;
2007 virtual int32_t getDefaultDayInMonth(int32_t eyear, int32_t month);
2088 int32_t weekNumber(int32_t desiredDay, int32_t dayOfPeriod, int32_t dayOfWeek);
2091 #ifndef U_HIDE_INTERNAL_API
2122 inline int32_t weekNumber(int32_t dayOfPeriod, int32_t dayOfWeek);
2128 int32_t getLocalDOW();
2142 void recalculateStamp();
2181 uint8_t fMinimalDaysInFirstWeek;
2183 int32_t fWeekendOnsetMillis;
2185 int32_t fWeekendCeaseMillis;
2197 void setWeekData(
const Locale& desiredLocale,
const char *type,
UErrorCode& success);
2215 int32_t fGregorianYear;
2222 int32_t fGregorianMonth;
2229 int32_t fGregorianDayOfYear;
2236 int32_t fGregorianDayOfMonth;
2246 void computeGregorianAndDOWFields(int32_t julianDay,
UErrorCode &ec);
2257 void computeGregorianFields(int32_t julianDay,
UErrorCode &ec);
2315 #ifndef U_HIDE_INTERNAL_API
2325 static uint8_t julianDayToDayOfWeek(
double julian);
2333 #if !UCONFIG_NO_SERVICE
2338 #ifndef U_HIDE_INTERNAL_API
2374 friend class CalendarFactory;
2380 friend class CalendarService;
2386 friend class DefaultCalendarFactory;
2393 virtual UBool haveDefaultCentury()
const = 0;
2399 virtual UDate defaultCenturyStart()
const = 0;
2404 virtual int32_t defaultCenturyStartYear()
const = 0;
2414 #ifndef U_HIDE_INTERNAL_API
2438 return createInstance(zone, Locale::getDefault(), errorCode);
2446 roll(field, (int32_t)(up ? +1 : -1), status);
2449 #ifndef U_HIDE_DEPRECATED_API
2468 fFields[field] = value;
2469 fStamp[field] = kInternallySet;
2470 fIsSet[field] =
TRUE;
2474 #ifndef U_HIDE_INTERNAL_API
2475 inline int32_t Calendar::weekNumber(int32_t dayOfPeriod, int32_t dayOfWeek)
2477 return weekNumber(dayOfPeriod, dayOfPeriod, dayOfWeek);