ICU 76.1 76.1

ucal.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 1996-2015, International Business Machines Corporation and
6 * others. All Rights Reserved.
7 *******************************************************************************
8 */
9
10 #ifndef UCAL_H
11 #define UCAL_H
12
13 #include "unicode/utypes.h"
14 #include "unicode/uenum.h"
15 #include "unicode/uloc.h"
16
17 #if U_SHOW_CPLUSPLUS_API
18 #include "unicode/localpointer.h"
19 #endif // U_SHOW_CPLUSPLUS_API
20
21 #if !UCONFIG_NO_FORMATTING
22
166 #define UCAL_UNKNOWN_ZONE_ID "Etc/Unknown"
167
172 typedef void* UCalendar;
173
177 enum UCalendarType {
183 UCAL_TRADITIONAL,
188 UCAL_DEFAULT = UCAL_TRADITIONAL,
193 UCAL_GREGORIAN
194 };
195
197 typedef enum UCalendarType UCalendarType;
198
202 enum UCalendarDateFields {
208 UCAL_ERA,
209
214 UCAL_YEAR,
215
235 UCAL_MONTH,
236
248 UCAL_WEEK_OF_YEAR,
249
263 UCAL_WEEK_OF_MONTH,
264
272 UCAL_DATE,
273
279 UCAL_DAY_OF_YEAR,
280
295 UCAL_DAY_OF_WEEK,
296
320 UCAL_DAY_OF_WEEK_IN_MONTH,
321
331 UCAL_AM_PM,
332
342 UCAL_HOUR,
343
351 UCAL_HOUR_OF_DAY,
352
359 UCAL_MINUTE,
360
367 UCAL_SECOND,
368
375 UCAL_MILLISECOND,
376
382 UCAL_ZONE_OFFSET,
383
389 UCAL_DST_OFFSET,
390
398 UCAL_YEAR_WOY,
399
406 UCAL_DOW_LOCAL,
407
414 UCAL_EXTENDED_YEAR,
415
426 UCAL_JULIAN_DAY,
427
437 UCAL_MILLISECONDS_IN_DAY,
438
443 UCAL_IS_LEAP_MONTH,
444
468 UCAL_ORDINAL_MONTH,
469
470 /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API,
471 * it is needed for layout of Calendar, DateFormat, and other objects */
472 #ifndef U_FORCE_HIDE_DEPRECATED_API
477 UCAL_FIELD_COUNT = UCAL_ORDINAL_MONTH + 1,
478
479 #endif // U_FORCE_HIDE_DEPRECATED_API
480
489 UCAL_DAY_OF_MONTH=UCAL_DATE
490 };
491
493 typedef enum UCalendarDateFields UCalendarDateFields;
502 enum UCalendarDaysOfWeek {
504 UCAL_SUNDAY = 1,
506 UCAL_MONDAY,
508 UCAL_TUESDAY,
510 UCAL_WEDNESDAY,
512 UCAL_THURSDAY,
514 UCAL_FRIDAY,
516 UCAL_SATURDAY
517 };
518
520 typedef enum UCalendarDaysOfWeek UCalendarDaysOfWeek;
521
525 enum UCalendarMonths {
527 UCAL_JANUARY,
529 UCAL_FEBRUARY,
531 UCAL_MARCH,
533 UCAL_APRIL,
535 UCAL_MAY,
537 UCAL_JUNE,
539 UCAL_JULY,
541 UCAL_AUGUST,
543 UCAL_SEPTEMBER,
545 UCAL_OCTOBER,
547 UCAL_NOVEMBER,
549 UCAL_DECEMBER,
554 UCAL_UNDECIMBER
555 };
556
558 typedef enum UCalendarMonths UCalendarMonths;
559
563 enum UCalendarAMPMs {
565 UCAL_AM,
567 UCAL_PM
568 };
569
571 typedef enum UCalendarAMPMs UCalendarAMPMs;
572
579 enum USystemTimeZoneType {
584 UCAL_ZONE_TYPE_ANY,
589 UCAL_ZONE_TYPE_CANONICAL,
594 UCAL_ZONE_TYPE_CANONICAL_LOCATION
595 };
596
598 typedef enum USystemTimeZoneType USystemTimeZoneType;
599
616 U_CAPI UEnumeration* U_EXPORT2
617 ucal_openTimeZoneIDEnumeration(USystemTimeZoneType zoneType, const char* region,
618 const int32_t* rawOffset, UErrorCode* ec);
619
631 U_CAPI UEnumeration* U_EXPORT2
632 ucal_openTimeZones(UErrorCode* ec);
633
650 U_CAPI UEnumeration* U_EXPORT2
651 ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
652
676 U_CAPI int32_t U_EXPORT2
677 ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
678
688 U_CAPI void U_EXPORT2
689 ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
690
720 U_CAPI int32_t U_EXPORT2
721 ucal_getHostTimeZone(UChar *result, int32_t resultCapacity, UErrorCode *ec);
722
739 U_CAPI int32_t U_EXPORT2
740 ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec);
741
748 U_CAPI UDate U_EXPORT2
749 ucal_getNow(void);
750
774 U_CAPI UCalendar* U_EXPORT2
775 ucal_open(const UChar* zoneID,
776 int32_t len,
777 const char* locale,
778 UCalendarType type,
779 UErrorCode* status);
780
787 U_CAPI void U_EXPORT2
788 ucal_close(UCalendar *cal);
789
790 #if U_SHOW_CPLUSPLUS_API
791
792 U_NAMESPACE_BEGIN
793
803 U_DEFINE_LOCAL_OPEN_POINTER(LocalUCalendarPointer, UCalendar, ucal_close);
804
805 U_NAMESPACE_END
806
807 #endif
808
817 U_CAPI UCalendar* U_EXPORT2
818 ucal_clone(const UCalendar* cal,
819 UErrorCode* status);
820
830 U_CAPI void U_EXPORT2
831 ucal_setTimeZone(UCalendar* cal,
832 const UChar* zoneID,
833 int32_t len,
834 UErrorCode* status);
835
846 U_CAPI int32_t U_EXPORT2
847 ucal_getTimeZoneID(const UCalendar *cal,
848 UChar *result,
849 int32_t resultLength,
850 UErrorCode *status);
851
856 enum UCalendarDisplayNameType {
858 UCAL_STANDARD,
860 UCAL_SHORT_STANDARD,
862 UCAL_DST,
864 UCAL_SHORT_DST
865 };
866
868 typedef enum UCalendarDisplayNameType UCalendarDisplayNameType;
869
883 U_CAPI int32_t U_EXPORT2
884 ucal_getTimeZoneDisplayName(const UCalendar* cal,
885 UCalendarDisplayNameType type,
886 const char* locale,
887 UChar* result,
888 int32_t resultLength,
889 UErrorCode* status);
890
899 U_CAPI UBool U_EXPORT2
900 ucal_inDaylightTime(const UCalendar* cal,
901 UErrorCode* status );
902
923 U_CAPI void U_EXPORT2
924 ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode);
925
946 U_CAPI UDate U_EXPORT2
947 ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode);
948
953 enum UCalendarAttribute {
958 UCAL_LENIENT,
963 UCAL_FIRST_DAY_OF_WEEK,
968 UCAL_MINIMAL_DAYS_IN_FIRST_WEEK,
974 UCAL_REPEATED_WALL_TIME,
980 UCAL_SKIPPED_WALL_TIME
981 };
982
984 typedef enum UCalendarAttribute UCalendarAttribute;
985
991 enum UCalendarWallTimeOption {
998 UCAL_WALLTIME_LAST,
1005 UCAL_WALLTIME_FIRST,
1011 UCAL_WALLTIME_NEXT_VALID
1012 };
1014 typedef enum UCalendarWallTimeOption UCalendarWallTimeOption;
1015
1027 U_CAPI int32_t U_EXPORT2
1028 ucal_getAttribute(const UCalendar* cal,
1029 UCalendarAttribute attr);
1030
1042 U_CAPI void U_EXPORT2
1043 ucal_setAttribute(UCalendar* cal,
1044 UCalendarAttribute attr,
1045 int32_t newValue);
1046
1056 U_CAPI const char* U_EXPORT2
1057 ucal_getAvailable(int32_t localeIndex);
1058
1067 U_CAPI int32_t U_EXPORT2
1068 ucal_countAvailable(void);
1069
1081 U_CAPI UDate U_EXPORT2
1082 ucal_getMillis(const UCalendar* cal,
1083 UErrorCode* status);
1084
1096 U_CAPI void U_EXPORT2
1097 ucal_setMillis(UCalendar* cal,
1098 UDate dateTime,
1099 UErrorCode* status );
1100
1115 U_CAPI void U_EXPORT2
1116 ucal_setDate(UCalendar* cal,
1117 int32_t year,
1118 int32_t month,
1119 int32_t date,
1120 UErrorCode* status);
1121
1139 U_CAPI void U_EXPORT2
1140 ucal_setDateTime(UCalendar* cal,
1141 int32_t year,
1142 int32_t month,
1143 int32_t date,
1144 int32_t hour,
1145 int32_t minute,
1146 int32_t second,
1147 UErrorCode* status);
1148
1158 U_CAPI UBool U_EXPORT2
1159 ucal_equivalentTo(const UCalendar* cal1,
1160 const UCalendar* cal2);
1161
1180 U_CAPI void U_EXPORT2
1181 ucal_add(UCalendar* cal,
1182 UCalendarDateFields field,
1183 int32_t amount,
1184 UErrorCode* status);
1185
1210 U_CAPI void U_EXPORT2
1211 ucal_roll(UCalendar* cal,
1212 UCalendarDateFields field,
1213 int32_t amount,
1214 UErrorCode* status);
1215
1232 U_CAPI int32_t U_EXPORT2
1233 ucal_get(const UCalendar* cal,
1234 UCalendarDateFields field,
1235 UErrorCode* status );
1236
1252 U_CAPI void U_EXPORT2
1253 ucal_set(UCalendar* cal,
1254 UCalendarDateFields field,
1255 int32_t value);
1256
1272 U_CAPI UBool U_EXPORT2
1273 ucal_isSet(const UCalendar* cal,
1274 UCalendarDateFields field);
1275
1290 U_CAPI void U_EXPORT2
1291 ucal_clearField(UCalendar* cal,
1292 UCalendarDateFields field);
1293
1304 U_CAPI void U_EXPORT2
1305 ucal_clear(UCalendar* calendar);
1306
1311 enum UCalendarLimitType {
1313 UCAL_MINIMUM,
1315 UCAL_MAXIMUM,
1317 UCAL_GREATEST_MINIMUM,
1319 UCAL_LEAST_MAXIMUM,
1321 UCAL_ACTUAL_MINIMUM,
1323 UCAL_ACTUAL_MAXIMUM
1324 };
1325
1327 typedef enum UCalendarLimitType UCalendarLimitType;
1328
1343 U_CAPI int32_t U_EXPORT2
1344 ucal_getLimit(const UCalendar* cal,
1345 UCalendarDateFields field,
1346 UCalendarLimitType type,
1347 UErrorCode* status);
1348
1356 U_CAPI const char * U_EXPORT2
1357 ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status);
1358
1365 U_CAPI const char * U_EXPORT2
1366 ucal_getTZDataVersion(UErrorCode* status);
1367
1386 U_CAPI int32_t U_EXPORT2
1387 ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len,
1388 UChar* result, int32_t resultCapacity, UBool *isSystemID, UErrorCode* status);
1389
1415 U_CAPI int32_t U_EXPORT2
1416 ucal_getIanaTimeZoneID(const UChar* id, int32_t len,
1417 UChar* result, int32_t resultCapacity, UErrorCode* status);
1418
1426 U_CAPI const char * U_EXPORT2
1427 ucal_getType(const UCalendar *cal, UErrorCode* status);
1428
1445 U_CAPI UEnumeration* U_EXPORT2
1446 ucal_getKeywordValuesForLocale(const char* key,
1447 const char* locale,
1448 UBool commonlyUsed,
1449 UErrorCode* status);
1450
1451
1455 enum UCalendarWeekdayType {
1460 UCAL_WEEKDAY,
1465 UCAL_WEEKEND,
1471 UCAL_WEEKEND_ONSET,
1477 UCAL_WEEKEND_CEASE
1478 };
1479
1481 typedef enum UCalendarWeekdayType UCalendarWeekdayType;
1482
1500 U_CAPI UCalendarWeekdayType U_EXPORT2
1501 ucal_getDayOfWeekType(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode* status);
1502
1518 U_CAPI int32_t U_EXPORT2
1519 ucal_getWeekendTransition(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode *status);
1520
1531 U_CAPI UBool U_EXPORT2
1532 ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status);
1533
1558 U_CAPI int32_t U_EXPORT2
1559 ucal_getFieldDifference(UCalendar* cal,
1560 UDate target,
1561 UCalendarDateFields field,
1562 UErrorCode* status);
1563
1568 enum UTimeZoneTransitionType {
1574 UCAL_TZ_TRANSITION_NEXT,
1580 UCAL_TZ_TRANSITION_NEXT_INCLUSIVE,
1586 UCAL_TZ_TRANSITION_PREVIOUS,
1592 UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE
1593 };
1594
1595 typedef enum UTimeZoneTransitionType UTimeZoneTransitionType;
1612 U_CAPI UBool U_EXPORT2
1613 ucal_getTimeZoneTransitionDate(const UCalendar* cal, UTimeZoneTransitionType type,
1614 UDate* transition, UErrorCode* status);
1615
1640 U_CAPI int32_t U_EXPORT2
1641 ucal_getWindowsTimeZoneID(const UChar* id, int32_t len,
1642 UChar* winid, int32_t winidCapacity, UErrorCode* status);
1643
1672 U_CAPI int32_t U_EXPORT2
1673 ucal_getTimeZoneIDForWindowsID(const UChar* winid, int32_t len, const char* region,
1674 UChar* id, int32_t idCapacity, UErrorCode* status);
1675
1682 enum UTimeZoneLocalOption {
1688 UCAL_TZ_LOCAL_FORMER = 0x04,
1694 UCAL_TZ_LOCAL_LATTER = 0x0C,
1703 UCAL_TZ_LOCAL_STANDARD_FORMER = UCAL_TZ_LOCAL_FORMER | 0x01,
1712 UCAL_TZ_LOCAL_STANDARD_LATTER = UCAL_TZ_LOCAL_LATTER | 0x01,
1721 UCAL_TZ_LOCAL_DAYLIGHT_FORMER = UCAL_TZ_LOCAL_FORMER | 0x03,
1730 UCAL_TZ_LOCAL_DAYLIGHT_LATTER = UCAL_TZ_LOCAL_LATTER | 0x03,
1731 };
1732 typedef enum UTimeZoneLocalOption UTimeZoneLocalOption;
1761 U_CAPI void U_EXPORT2
1762 ucal_getTimeZoneOffsetFromLocal(
1763 const UCalendar* cal,
1764 UTimeZoneLocalOption nonExistingTimeOpt,
1765 UTimeZoneLocalOption duplicatedTimeOpt,
1766 int32_t* rawOffset, int32_t* dstOffset, UErrorCode* status);
1767
1768 #endif /* #if !UCONFIG_NO_FORMATTING */
1769
1770 #endif
LocalUCalendarPointer
"Smart pointer" class, closes a UCalendar via ucal_close().
localpointer.h
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
U_DEFINE_LOCAL_OPEN_POINTER
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
Definition: localpointer.h:550
UCalendarDateFields
UCalendarDateFields
Possible fields in a UCalendar.
Definition: ucal.h:202
UCAL_HOUR_OF_DAY
@ UCAL_HOUR_OF_DAY
Field number indicating the hour of the day.
Definition: ucal.h:351
UCAL_EXTENDED_YEAR
@ UCAL_EXTENDED_YEAR
Year of this calendar system, encompassing all supra-year fields.
Definition: ucal.h:414
UCAL_ERA
@ UCAL_ERA
Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar.
Definition: ucal.h:208
UCAL_ORDINAL_MONTH
@ UCAL_ORDINAL_MONTH
Field number indicating the month.
Definition: ucal.h:468
UCAL_WEEK_OF_MONTH
@ UCAL_WEEK_OF_MONTH
Field number indicating the week number within the current month.
Definition: ucal.h:263
UCAL_YEAR
@ UCAL_YEAR
Field number indicating the year.
Definition: ucal.h:214
UCAL_DAY_OF_YEAR
@ UCAL_DAY_OF_YEAR
Field number indicating the day number within the current year.
Definition: ucal.h:279
UCAL_YEAR_WOY
@ UCAL_YEAR_WOY
Field number indicating the extended year corresponding to the UCAL_WEEK_OF_YEAR field.
Definition: ucal.h:398
UCAL_MINUTE
@ UCAL_MINUTE
Field number indicating the minute within the hour.
Definition: ucal.h:359
UCAL_JULIAN_DAY
@ UCAL_JULIAN_DAY
Field number indicating the modified Julian day number.
Definition: ucal.h:426
UCAL_DATE
@ UCAL_DATE
Field number indicating the day of the month.
Definition: ucal.h:272
UCAL_SECOND
@ UCAL_SECOND
Field number indicating the second within the minute.
Definition: ucal.h:367
UCAL_DAY_OF_WEEK_IN_MONTH
@ UCAL_DAY_OF_WEEK_IN_MONTH
Field number indicating the ordinal number of the day of the week within the current month.
Definition: ucal.h:320
UCAL_MONTH
@ UCAL_MONTH
Field number indicating the month.
Definition: ucal.h:235
UCAL_ZONE_OFFSET
@ UCAL_ZONE_OFFSET
Field number indicating the raw offset from GMT in milliseconds.
Definition: ucal.h:382
UCAL_WEEK_OF_YEAR
@ UCAL_WEEK_OF_YEAR
Field number indicating the week number within the current year.
Definition: ucal.h:248
UCAL_MILLISECOND
@ UCAL_MILLISECOND
Field number indicating the millisecond within the second.
Definition: ucal.h:375
UCAL_HOUR
@ UCAL_HOUR
Field number indicating the hour of the morning or afternoon.
Definition: ucal.h:342
UCAL_DAY_OF_MONTH
@ UCAL_DAY_OF_MONTH
Field number indicating the day of the month.
Definition: ucal.h:489
UCAL_DAY_OF_WEEK
@ UCAL_DAY_OF_WEEK
Field number indicating the day of the week.
Definition: ucal.h:295
UCAL_AM_PM
@ UCAL_AM_PM
Field number indicating whether the HOUR is before or after noon.
Definition: ucal.h:331
UCAL_FIELD_COUNT
@ UCAL_FIELD_COUNT
One more than the highest normal UCalendarDateFields value.
Definition: ucal.h:477
UCAL_IS_LEAP_MONTH
@ UCAL_IS_LEAP_MONTH
Whether or not the current month is a leap month (0 or 1).
Definition: ucal.h:443
UCAL_DST_OFFSET
@ UCAL_DST_OFFSET
Field number indicating the daylight savings offset in milliseconds.
Definition: ucal.h:389
UCAL_MILLISECONDS_IN_DAY
@ UCAL_MILLISECONDS_IN_DAY
Ranges from 0 to 23:59:59.999 (regardless of DST).
Definition: ucal.h:437
UCAL_DOW_LOCAL
@ UCAL_DOW_LOCAL
Field number indicating the localized day of week.
Definition: ucal.h:406
ucal_getTimeZoneDisplayName
U_CAPI int32_t ucal_getTimeZoneDisplayName(const UCalendar *cal, UCalendarDisplayNameType type, const char *locale, UChar *result, int32_t resultLength, UErrorCode *status)
Get the display name for a UCalendar's TimeZone.
UTimeZoneLocalOption
UTimeZoneLocalOption
Options used by ucal_getTimeZoneOffsetFromLocal and BasicTimeZone::getOffsetFromLocal() to specify ho...
Definition: ucal.h:1682
UCAL_TZ_LOCAL_DAYLIGHT_LATTER
@ UCAL_TZ_LOCAL_DAYLIGHT_LATTER
An input time is interpreted as daylight saving time when local time is switched to/from standard tim...
Definition: ucal.h:1730
UCAL_TZ_LOCAL_STANDARD_LATTER
@ UCAL_TZ_LOCAL_STANDARD_LATTER
An input time is interpreted as standard time when local time is switched to/from daylight saving tim...
Definition: ucal.h:1712
UCAL_TZ_LOCAL_STANDARD_FORMER
@ UCAL_TZ_LOCAL_STANDARD_FORMER
An input time is interpreted as standard time when local time is switched to/from daylight saving tim...
Definition: ucal.h:1703
UCAL_TZ_LOCAL_DAYLIGHT_FORMER
@ UCAL_TZ_LOCAL_DAYLIGHT_FORMER
An input time is interpreted as daylight saving time when local time is switched to/from standard tim...
Definition: ucal.h:1721
UCAL_TZ_LOCAL_LATTER
@ UCAL_TZ_LOCAL_LATTER
An input time is always interpreted as local time after a time zone transition.
Definition: ucal.h:1694
UCAL_TZ_LOCAL_FORMER
@ UCAL_TZ_LOCAL_FORMER
An input time is always interpreted as local time before a time zone transition.
Definition: ucal.h:1688
ucal_openTimeZones
U_CAPI UEnumeration * ucal_openTimeZones(UErrorCode *ec)
Create an enumeration over all time zones.
ucal_getGregorianChange
U_CAPI UDate ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode)
Gets the Gregorian Calendar change date.
USystemTimeZoneType
USystemTimeZoneType
System time zone type constants used by filtering zones in ucal_openTimeZoneIDEnumeration.
Definition: ucal.h:579
UCAL_ZONE_TYPE_CANONICAL
@ UCAL_ZONE_TYPE_CANONICAL
Canonical system zones.
Definition: ucal.h:589
UCAL_ZONE_TYPE_ANY
@ UCAL_ZONE_TYPE_ANY
Any system zones.
Definition: ucal.h:584
UCAL_ZONE_TYPE_CANONICAL_LOCATION
@ UCAL_ZONE_TYPE_CANONICAL_LOCATION
Canonical system zones associated with actual locations.
Definition: ucal.h:594
ucal_getWeekendTransition
U_CAPI int32_t ucal_getWeekendTransition(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode *status)
Returns the time during the day at which the weekend begins or ends in this calendar system.
UCalendarAttribute
UCalendarAttribute
Types of UCalendar attributes.
Definition: ucal.h:953
UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
@ UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
Minimum number of days in first week.
Definition: ucal.h:968
UCAL_REPEATED_WALL_TIME
@ UCAL_REPEATED_WALL_TIME
The behavior for handling wall time repeating multiple times at negative time zone offset transitions...
Definition: ucal.h:974
UCAL_FIRST_DAY_OF_WEEK
@ UCAL_FIRST_DAY_OF_WEEK
First day of week.
Definition: ucal.h:963
UCAL_SKIPPED_WALL_TIME
@ UCAL_SKIPPED_WALL_TIME
The behavior for handling skipped wall time at positive time zone offset transitions.
Definition: ucal.h:980
UCAL_LENIENT
@ UCAL_LENIENT
Lenient parsing.
Definition: ucal.h:958
ucal_setDate
U_CAPI void ucal_setDate(UCalendar *cal, int32_t year, int32_t month, int32_t date, UErrorCode *status)
Set a UCalendar's current date.
ucal_setGregorianChange
U_CAPI void ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode)
Sets the GregorianCalendar change date.
ucal_getAvailable
U_CAPI const char * ucal_getAvailable(int32_t localeIndex)
Get a locale for which calendars are available.
ucal_getKeywordValuesForLocale
U_CAPI UEnumeration * ucal_getKeywordValuesForLocale(const char *key, const char *locale, UBool commonlyUsed, UErrorCode *status)
Given a key and a locale, returns an array of string values in a preferred order that would make a di...
ucal_isWeekend
U_CAPI UBool ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status)
Returns true if the given UDate is in the weekend in this calendar system.
ucal_close
U_CAPI void ucal_close(UCalendar *cal)
Close a UCalendar.
UCalendarWallTimeOption
UCalendarWallTimeOption
Options for handling ambiguous wall time at time zone offset transitions.
Definition: ucal.h:991
UCAL_WALLTIME_NEXT_VALID
@ UCAL_WALLTIME_NEXT_VALID
An ambiguous wall time to be interpreted as the next valid wall time.
Definition: ucal.h:1011
UCAL_WALLTIME_LAST
@ UCAL_WALLTIME_LAST
An ambiguous wall time to be interpreted as the latest.
Definition: ucal.h:998
UCAL_WALLTIME_FIRST
@ UCAL_WALLTIME_FIRST
An ambiguous wall time to be interpreted as the earliest.
Definition: ucal.h:1005
ucal_open
U_CAPI UCalendar * ucal_open(const UChar *zoneID, int32_t len, const char *locale, UCalendarType type, UErrorCode *status)
Open a UCalendar.
ucal_clearField
U_CAPI void ucal_clearField(UCalendar *cal, UCalendarDateFields field)
Clear a field in a UCalendar.
ucal_clone
U_CAPI UCalendar * ucal_clone(const UCalendar *cal, UErrorCode *status)
Open a copy of a UCalendar.
ucal_getLimit
U_CAPI int32_t ucal_getLimit(const UCalendar *cal, UCalendarDateFields field, UCalendarLimitType type, UErrorCode *status)
Determine a limit for a field in a UCalendar.
ucal_getIanaTimeZoneID
U_CAPI int32_t ucal_getIanaTimeZoneID(const UChar *id, int32_t len, UChar *result, int32_t resultCapacity, UErrorCode *status)
Returns the preferred time zone ID in the IANA time zone database for the given time zone ID.
ucal_inDaylightTime
U_CAPI UBool ucal_inDaylightTime(const UCalendar *cal, UErrorCode *status)
Determine if a UCalendar is currently in daylight savings time.
UCalendarWeekdayType
UCalendarWeekdayType
Weekday types, as returned by ucal_getDayOfWeekType().
Definition: ucal.h:1455
UCAL_WEEKDAY
@ UCAL_WEEKDAY
Designates a full weekday (no part of the day is included in the weekend).
Definition: ucal.h:1460
UCAL_WEEKEND_CEASE
@ UCAL_WEEKEND_CEASE
Designates a day that starts as the weekend and transitions to a weekday.
Definition: ucal.h:1477
UCAL_WEEKEND
@ UCAL_WEEKEND
Designates a full weekend day (the entire day is included in the weekend).
Definition: ucal.h:1465
UCAL_WEEKEND_ONSET
@ UCAL_WEEKEND_ONSET
Designates a day that starts as a weekday and transitions to the weekend.
Definition: ucal.h:1471
ucal_getDayOfWeekType
U_CAPI UCalendarWeekdayType ucal_getDayOfWeekType(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode *status)
Returns whether the given day of the week is a weekday, a weekend day, or a day that transitions from...
ucal_set
U_CAPI void ucal_set(UCalendar *cal, UCalendarDateFields field, int32_t value)
Set the value of a field in a UCalendar.
UCalendarDaysOfWeek
UCalendarDaysOfWeek
Useful constant for days of week.
Definition: ucal.h:502
UCAL_WEDNESDAY
@ UCAL_WEDNESDAY
Wednesday.
Definition: ucal.h:510
UCAL_SATURDAY
@ UCAL_SATURDAY
Saturday.
Definition: ucal.h:516
UCAL_THURSDAY
@ UCAL_THURSDAY
Thursday.
Definition: ucal.h:512
UCAL_MONDAY
@ UCAL_MONDAY
Monday.
Definition: ucal.h:506
UCAL_SUNDAY
@ UCAL_SUNDAY
Sunday.
Definition: ucal.h:504
UCAL_FRIDAY
@ UCAL_FRIDAY
Friday.
Definition: ucal.h:514
UCAL_TUESDAY
@ UCAL_TUESDAY
Tuesday.
Definition: ucal.h:508
ucal_openTimeZoneIDEnumeration
U_CAPI UEnumeration * ucal_openTimeZoneIDEnumeration(USystemTimeZoneType zoneType, const char *region, const int32_t *rawOffset, UErrorCode *ec)
Create an enumeration over system time zone IDs with the given filter conditions.
ucal_getAttribute
U_CAPI int32_t ucal_getAttribute(const UCalendar *cal, UCalendarAttribute attr)
Get a numeric attribute associated with a UCalendar.
ucal_get
U_CAPI int32_t ucal_get(const UCalendar *cal, UCalendarDateFields field, UErrorCode *status)
Get the current value of a field from a UCalendar.
ucal_add
U_CAPI void ucal_add(UCalendar *cal, UCalendarDateFields field, int32_t amount, UErrorCode *status)
Add a specified signed amount to a particular field in a UCalendar.
UCalendarLimitType
UCalendarLimitType
Possible limit values for a UCalendar.
Definition: ucal.h:1311
UCAL_ACTUAL_MAXIMUM
@ UCAL_ACTUAL_MAXIMUM
Actual maximum value.
Definition: ucal.h:1323
UCAL_ACTUAL_MINIMUM
@ UCAL_ACTUAL_MINIMUM
Actual minimum value.
Definition: ucal.h:1321
UCAL_GREATEST_MINIMUM
@ UCAL_GREATEST_MINIMUM
Greatest minimum value.
Definition: ucal.h:1317
UCAL_MINIMUM
@ UCAL_MINIMUM
Minimum value.
Definition: ucal.h:1313
UCAL_MAXIMUM
@ UCAL_MAXIMUM
Maximum value.
Definition: ucal.h:1315
UCAL_LEAST_MAXIMUM
@ UCAL_LEAST_MAXIMUM
Least maximum value.
Definition: ucal.h:1319
UCalendarAMPMs
UCalendarAMPMs
Possible AM/PM values in a UCalendar.
Definition: ucal.h:563
UCAL_AM
@ UCAL_AM
AM.
Definition: ucal.h:565
UCAL_PM
@ UCAL_PM
PM.
Definition: ucal.h:567
ucal_getTimeZoneTransitionDate
U_CAPI UBool ucal_getTimeZoneTransitionDate(const UCalendar *cal, UTimeZoneTransitionType type, UDate *transition, UErrorCode *status)
Get the UDate for the next/previous time zone transition relative to the calendar's current date,...
UTimeZoneTransitionType
UTimeZoneTransitionType
Time zone transition types for ucal_getTimeZoneTransitionDate.
Definition: ucal.h:1568
UCAL_TZ_TRANSITION_PREVIOUS
@ UCAL_TZ_TRANSITION_PREVIOUS
Get the previous transition before the current date, i.e.
Definition: ucal.h:1586
UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE
@ UCAL_TZ_TRANSITION_PREVIOUS_INCLUSIVE
Get the previous transition on or before the current date, i.e.
Definition: ucal.h:1592
UCAL_TZ_TRANSITION_NEXT
@ UCAL_TZ_TRANSITION_NEXT
Get the next transition after the current date, i.e.
Definition: ucal.h:1574
UCAL_TZ_TRANSITION_NEXT_INCLUSIVE
@ UCAL_TZ_TRANSITION_NEXT_INCLUSIVE
Get the next transition on or after the current date, i.e.
Definition: ucal.h:1580
UCalendarType
UCalendarType
Possible types of UCalendars.
Definition: ucal.h:177
UCAL_GREGORIAN
@ UCAL_GREGORIAN
Unambiguously designates the Gregorian calendar for the locale.
Definition: ucal.h:193
UCAL_DEFAULT
@ UCAL_DEFAULT
A better name for UCAL_TRADITIONAL.
Definition: ucal.h:188
UCAL_TRADITIONAL
@ UCAL_TRADITIONAL
Despite the name, UCAL_TRADITIONAL designates the locale's default calendar, which may be the Gregori...
Definition: ucal.h:183
ucal_clear
U_CAPI void ucal_clear(UCalendar *calendar)
Clear all fields in a UCalendar.
ucal_setTimeZone
U_CAPI void ucal_setTimeZone(UCalendar *cal, const UChar *zoneID, int32_t len, UErrorCode *status)
Set the TimeZone used by a UCalendar.
ucal_getDSTSavings
U_CAPI int32_t ucal_getDSTSavings(const UChar *zoneID, UErrorCode *ec)
Return the amount of time in milliseconds that the clock is advanced during daylight savings time for...
ucal_getTimeZoneOffsetFromLocal
U_CAPI void ucal_getTimeZoneOffsetFromLocal(const UCalendar *cal, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, int32_t *rawOffset, int32_t *dstOffset, UErrorCode *status)
Returns the time zone raw and GMT offset for the given moment in time.
ucal_setDefaultTimeZone
U_CAPI void ucal_setDefaultTimeZone(const UChar *zoneID, UErrorCode *ec)
Set the default time zone.
ucal_getTimeZoneID
U_CAPI int32_t ucal_getTimeZoneID(const UCalendar *cal, UChar *result, int32_t resultLength, UErrorCode *status)
Get the ID of the UCalendar's time zone.
ucal_getHostTimeZone
U_CAPI int32_t ucal_getHostTimeZone(UChar *result, int32_t resultCapacity, UErrorCode *ec)
Return the current host time zone.
ucal_getDefaultTimeZone
U_CAPI int32_t ucal_getDefaultTimeZone(UChar *result, int32_t resultCapacity, UErrorCode *ec)
Return the default time zone.
ucal_getNow
U_CAPI UDate ucal_getNow(void)
Get the current date and time.
ucal_equivalentTo
U_CAPI UBool ucal_equivalentTo(const UCalendar *cal1, const UCalendar *cal2)
Returns true if two UCalendars are equivalent.
ucal_getLocaleByType
U_CAPI const char * ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode *status)
Get the locale for this calendar object.
ucal_getCanonicalTimeZoneID
U_CAPI int32_t ucal_getCanonicalTimeZoneID(const UChar *id, int32_t len, UChar *result, int32_t resultCapacity, UBool *isSystemID, UErrorCode *status)
Returns the canonical system timezone ID or the normalized custom time zone ID for the given time zon...
ucal_getTZDataVersion
U_CAPI const char * ucal_getTZDataVersion(UErrorCode *status)
Returns the timezone data version currently used by ICU.
ucal_getTimeZoneIDForWindowsID
U_CAPI int32_t ucal_getTimeZoneIDForWindowsID(const UChar *winid, int32_t len, const char *region, UChar *id, int32_t idCapacity, UErrorCode *status)
Converts a Windows time zone ID to an equivalent system time zone ID for a region.
ucal_getFieldDifference
U_CAPI int32_t ucal_getFieldDifference(UCalendar *cal, UDate target, UCalendarDateFields field, UErrorCode *status)
Return the difference between the target time and the time this calendar object is currently set to.
ucal_setMillis
U_CAPI void ucal_setMillis(UCalendar *cal, UDate dateTime, UErrorCode *status)
Set a UCalendar's current time in millis.
ucal_roll
U_CAPI void ucal_roll(UCalendar *cal, UCalendarDateFields field, int32_t amount, UErrorCode *status)
Add a specified signed amount to a particular field in a UCalendar.
ucal_getType
U_CAPI const char * ucal_getType(const UCalendar *cal, UErrorCode *status)
Get the resource keyword value string designating the calendar type for the UCalendar.
ucal_getWindowsTimeZoneID
U_CAPI int32_t ucal_getWindowsTimeZoneID(const UChar *id, int32_t len, UChar *winid, int32_t winidCapacity, UErrorCode *status)
Converts a system time zone ID to an equivalent Windows time zone ID.
ucal_getMillis
U_CAPI UDate ucal_getMillis(const UCalendar *cal, UErrorCode *status)
Get a UCalendar's current time in millis.
ucal_setAttribute
U_CAPI void ucal_setAttribute(UCalendar *cal, UCalendarAttribute attr, int32_t newValue)
Set a numeric attribute associated with a UCalendar.
ucal_openCountryTimeZones
U_CAPI UEnumeration * ucal_openCountryTimeZones(const char *country, UErrorCode *ec)
Create an enumeration over all time zones associated with the given country.
UCalendarDisplayNameType
UCalendarDisplayNameType
Possible formats for a UCalendar's display name.
Definition: ucal.h:856
UCAL_STANDARD
@ UCAL_STANDARD
Standard display name.
Definition: ucal.h:858
UCAL_SHORT_DST
@ UCAL_SHORT_DST
Short daylight savings display name.
Definition: ucal.h:864
UCAL_SHORT_STANDARD
@ UCAL_SHORT_STANDARD
Short standard display name.
Definition: ucal.h:860
UCAL_DST
@ UCAL_DST
Daylight savings display name.
Definition: ucal.h:862
UCalendarMonths
UCalendarMonths
Possible months in a UCalendar.
Definition: ucal.h:525
UCAL_DECEMBER
@ UCAL_DECEMBER
December.
Definition: ucal.h:549
UCAL_MAY
@ UCAL_MAY
May.
Definition: ucal.h:535
UCAL_UNDECIMBER
@ UCAL_UNDECIMBER
Value of the UCAL_MONTH field indicating the thirteenth month of the year.
Definition: ucal.h:554
UCAL_APRIL
@ UCAL_APRIL
April.
Definition: ucal.h:533
UCAL_NOVEMBER
@ UCAL_NOVEMBER
November.
Definition: ucal.h:547
UCAL_JUNE
@ UCAL_JUNE
June.
Definition: ucal.h:537
UCAL_AUGUST
@ UCAL_AUGUST
August.
Definition: ucal.h:541
UCAL_JULY
@ UCAL_JULY
July.
Definition: ucal.h:539
UCAL_SEPTEMBER
@ UCAL_SEPTEMBER
September.
Definition: ucal.h:543
UCAL_JANUARY
@ UCAL_JANUARY
January.
Definition: ucal.h:527
UCAL_FEBRUARY
@ UCAL_FEBRUARY
February.
Definition: ucal.h:529
UCAL_MARCH
@ UCAL_MARCH
March.
Definition: ucal.h:531
UCAL_OCTOBER
@ UCAL_OCTOBER
October.
Definition: ucal.h:545
ucal_isSet
U_CAPI UBool ucal_isSet(const UCalendar *cal, UCalendarDateFields field)
Determine if a field in a UCalendar is set.
ucal_setDateTime
U_CAPI void ucal_setDateTime(UCalendar *cal, int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute, int32_t second, UErrorCode *status)
Set a UCalendar's current date.
UCalendar
void * UCalendar
A calendar.
Definition: ucal.h:172
ucal_countAvailable
U_CAPI int32_t ucal_countAvailable(void)
Determine how many locales have calendars available.
uenum.h
C API: String Enumeration.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:44
uloc.h
C API: Locale ID functionality similar to C++ class Locale.
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition: uloc.h:338
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:247
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:430
UDate
double UDate
Date and Time data type.
Definition: utypes.h:218