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);
UCalendarDateFields
Possible fields in a UCalendar.
Calendar is an abstract base class for converting between a UDate object and a set of integer fields ...
C++ API: TimeZone object.
double UDate
Date and Time data type.
virtual UClassID getDynamicClassID() const =0
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
int32_t internalGet(UCalendarDateFields field) const
Gets the value for a given time field.
#define ULOC_FULLNAME_CAPACITY
Useful constant for the maximum size of the whole locale ID (including the terminating NULL and all k...
Base class for 'pure' C++ implementations of uenum api.
EMonths
Useful constants for month.
TimeZone represents a time zone offset, and also figures out daylight savings.
UCalendarWeekdayType
Weekday types, as returned by ucal_getDayOfWeekType().
int32_t getGregorianDayOfMonth() const
Return the day of month (1-based) on the Gregorian calendar as computed by computeGregorianFields().
int32_t internalGet(UCalendarDateFields field, int32_t defaultValue) const
Gets the value for a given time field.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
UCalendarWallTimeOption
Options for handling ambiguous wall time at time zone offset transitions.
UBool fAreAllFieldsSet
True if all of the fields have been set.
UBool fIsTimeSet
The flag which indicates if the current time is set in the calendar.
int32_t getGregorianMonth() const
Return the month (0-based) on the Gregorian calendar as computed by computeGregorianFields().
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
UCalendarDaysOfWeek
Useful constant for days of week.
int32_t getGregorianYear() const
Return the extended year on the Gregorian calendar as computed by computeGregorianFields().
EAmpm
Useful constants for hour in 12-hour clock.
void setTime(UDate date, UErrorCode &status)
Sets this Calendar's current time with the given UDate.
BasicTimeZone is an abstract class extending TimeZone.
#define TRUE
The TRUE value of a UBool.
EDaysOfWeek
Useful constant for days of week.
int32_t getGregorianDayOfYear() const
Return the day of year (1-based) on the Gregorian calendar as computed by computeGregorianFields().
UDate getTime(UErrorCode &status) const
Gets this Calendar's time as milliseconds.
C++ API: Common ICU base class UObject.
const void * URegistryKey
Opaque type returned by registerInstance, registerFactory and unregister for service registration...
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested...
UBool fAreFieldsVirtuallySet
True if all fields have been virtually set, but have not yet been computed.
UBool operator!=(const Calendar &that) const
Compares the inequality of two Calendar objects.
C++ API: Locale ID object.
int32_t internalGet(EDateFields field) const
Gets the value for a given time field.
EDateFields
Field IDs for date and time.
void internalSetTime(UDate time)
Set the current time without affecting flags or fields.
Basic definitions for ICU, for both C and C++ APIs.
UObject is the common ICU "boilerplate" class.
int32_t UFieldResolutionTable[12][8]
UBool fAreFieldsSet
True if the fields are in sync with the currently set time of this Calendar.
int8_t UBool
The ICU boolean type.
UDate internalGetTime(void) const
Get the current time without recomputing.
A Locale object represents a specific geographical, political, or cultural region.