/
usr
/
include
/
unicode
/
/usr/include/unicode
mkdir
upload
Name
Size
Mode
Actions
basictz.h
8913
0644
edit
dl
rm
bms.h
8664
0644
edit
dl
rm
bmsearch.h
7316
0644
edit
dl
rm
brkiter.h
23001
0644
edit
dl
rm
bytestream.h
8531
0644
edit
dl
rm
calendar.h
90659
0644
edit
dl
rm
caniter.h
7288
0644
edit
dl
rm
chariter.h
24186
0644
edit
dl
rm
choicfmt.h
29528
0644
edit
dl
rm
coleitr.h
12990
0644
edit
dl
rm
coll.h
48468
0644
edit
dl
rm
colldata.h
11957
0644
edit
dl
rm
curramt.h
3659
0644
edit
dl
rm
currpinf.h
7061
0644
edit
dl
rm
currunit.h
3057
0644
edit
dl
rm
datefmt.h
27946
0644
edit
dl
rm
dbbi.h
966
0644
edit
dl
rm
dcfmtsym.h
14040
0644
edit
dl
rm
decimfmt.h
88612
0644
edit
dl
rm
docmain.h
6003
0644
edit
dl
rm
dtfmtsym.h
26145
0644
edit
dl
rm
dtintrv.h
3734
0644
edit
dl
rm
dtitvfmt.h
39700
0644
edit
dl
rm
dtitvinf.h
18704
0644
edit
dl
rm
dtptngen.h
17303
0644
edit
dl
rm
dtrule.h
8718
0644
edit
dl
rm
errorcode.h
4361
0644
edit
dl
rm
fieldpos.h
8713
0644
edit
dl
rm
fmtable.h
18794
0644
edit
dl
rm
format.h
12083
0644
edit
dl
rm
gregocal.h
33797
0644
edit
dl
rm
locid.h
30241
0644
edit
dl
rm
measfmt.h
1897
0644
edit
dl
rm
measunit.h
1635
0644
edit
dl
rm
measure.h
3321
0644
edit
dl
rm
msgfmt.h
39435
0644
edit
dl
rm
normlzr.h
30337
0644
edit
dl
rm
numfmt.h
33987
0644
edit
dl
rm
numsys.h
5004
0644
edit
dl
rm
parseerr.h
3044
0644
edit
dl
rm
parsepos.h
5468
0644
edit
dl
rm
platform.h
9961
0644
edit
dl
rm
plurfmt.h
23079
0644
edit
dl
rm
plurrule.h
9901
0644
edit
dl
rm
ppalmos.h
6992
0644
edit
dl
rm
putil.h
6686
0644
edit
dl
rm
pwin32.h
8668
0644
edit
dl
rm
rbbi.h
26993
0644
edit
dl
rm
rbnf.h
45681
0644
edit
dl
rm
rbtz.h
15695
0644
edit
dl
rm
regex.h
52316
0644
edit
dl
rm
rep.h
9559
0644
edit
dl
rm
resbund.h
18130
0644
edit
dl
rm
schriter.h
6293
0644
edit
dl
rm
search.h
22357
0644
edit
dl
rm
simpletz.h
46179
0644
edit
dl
rm
smpdtfmt.h
48325
0644
edit
dl
rm
sortkey.h
11111
0644
edit
dl
rm
std_string.h
1769
0644
edit
dl
rm
strenum.h
9888
0644
edit
dl
rm
stringpiece.h
5484
0644
edit
dl
rm
stsearch.h
22287
0644
edit
dl
rm
symtable.h
4199
0644
edit
dl
rm
tblcoll.h
38199
0644
edit
dl
rm
timezone.h
34584
0644
edit
dl
rm
tmunit.h
3454
0644
edit
dl
rm
tmutamt.h
4787
0644
edit
dl
rm
tmutfmt.h
8669
0644
edit
dl
rm
translit.h
54780
0644
edit
dl
rm
tzrule.h
36057
0644
edit
dl
rm
tztrans.h
6101
0644
edit
dl
rm
ubidi.h
83092
0644
edit
dl
rm
ubrk.h
17688
0644
edit
dl
rm
ucal.h
40177
0644
edit
dl
rm
ucasemap.h
16420
0644
edit
dl
rm
ucat.h
5371
0644
edit
dl
rm
uchar.h
111062
0644
edit
dl
rm
uchriter.h
13132
0644
edit
dl
rm
uclean.h
11855
0644
edit
dl
rm
ucnv.h
83111
0644
edit
dl
rm
ucnvsel.h
5630
0644
edit
dl
rm
ucnv_cb.h
6635
0644
edit
dl
rm
ucnv_err.h
21375
0644
edit
dl
rm
ucol.h
48826
0644
edit
dl
rm
ucoleitr.h
12356
0644
edit
dl
rm
uconfig.h
6035
0644
edit
dl
rm
ucsdet.h
12464
0644
edit
dl
rm
ucurr.h
11572
0644
edit
dl
rm
udat.h
34496
0644
edit
dl
rm
udata.h
14265
0644
edit
dl
rm
udatpg.h
18715
0644
edit
dl
rm
udeprctd.h
2284
0644
edit
dl
rm
udraft.h
7600
0644
edit
dl
rm
uenum.h
5796
0644
edit
dl
rm
uidna.h
15918
0644
edit
dl
rm
uintrnal.h
15752
0644
edit
dl
rm
uiter.h
23234
0644
edit
dl
rm
uloc.h
44548
0644
edit
dl
rm
ulocdata.h
9739
0644
edit
dl
rm
umachine.h
11360
0644
edit
dl
rm
umisc.h
1255
0644
edit
dl
rm
umsg.h
26076
0644
edit
dl
rm
unifilt.h
3770
0644
edit
dl
rm
unifunct.h
3966
0644
edit
dl
rm
unimatch.h
6071
0644
edit
dl
rm
unirepl.h
3290
0644
edit
dl
rm
uniset.h
61771
0644
edit
dl
rm
unistr.h
161321
0644
edit
dl
rm
unorm.h
23621
0644
edit
dl
rm
unum.h
32145
0644
edit
dl
rm
uobject.h
11393
0644
edit
dl
rm
uobslete.h
852
0644
edit
dl
rm
uregex.h
43948
0644
edit
dl
rm
urename.h
92538
0644
edit
dl
rm
urep.h
5394
0644
edit
dl
rm
ures.h
36348
0644
edit
dl
rm
uscript.h
11360
0644
edit
dl
rm
usearch.h
34223
0644
edit
dl
rm
uset.h
39868
0644
edit
dl
rm
usetiter.h
9606
0644
edit
dl
rm
ushape.h
17907
0644
edit
dl
rm
uspoof.h
38752
0644
edit
dl
rm
usprep.h
7750
0644
edit
dl
rm
ustdio.h
35333
0644
edit
dl
rm
ustream.h
1891
0644
edit
dl
rm
ustring.h
69383
0644
edit
dl
rm
usystem.h
1925
0644
edit
dl
rm
utext.h
58394
0644
edit
dl
rm
utf.h
8273
0644
edit
dl
rm
utf8.h
20512
0644
edit
dl
rm
utf16.h
18776
0644
edit
dl
rm
utf32.h
653
0644
edit
dl
rm
utf_old.h
43646
0644
edit
dl
rm
utmscale.h
13689
0644
edit
dl
rm
utrace.h
13355
0644
edit
dl
rm
utrans.h
23129
0644
edit
dl
rm
utypes.h
34513
0644
edit
dl
rm
uversion.h
10902
0644
edit
dl
rm
vtzone.h
20048
0644
edit
dl
rm
Edit:
/usr/include/unicode/ucal.h
(40177B)
/* ******************************************************************************* * Copyright (C) 1996-2009, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* */ #ifndef UCAL_H #define UCAL_H #include "unicode/utypes.h" #include "unicode/uenum.h" #include "unicode/uloc.h" #if !UCONFIG_NO_FORMATTING /** * \file * \brief C API: Calendar * * <h2>Calendar C API</h2> * * UCalendar C API is used for converting between a <code>UDate</code> object * and a set of integer fields such as <code>UCAL_YEAR</code>, <code>UCAL_MONTH</code>, * <code>UCAL_DAY</code>, <code>UCAL_HOUR</code>, and so on. * (A <code>UDate</code> object represents a specific instant in * time with millisecond precision. See UDate * for information about the <code>UDate</code> .) * * <p> * Types of <code>UCalendar</code> interpret a <code>UDate</code> * according to the rules of a specific calendar system. The U_STABLE * provides the enum UCalendarType with UCAL_TRADITIONAL and * UCAL_GREGORIAN. * <p> * Like other locale-sensitive C API, calendar API provides a * function, <code>ucal_open()</code>, which returns a pointer to * <code>UCalendar</code> whose time fields have been initialized * with the current date and time. We need to specify the type of * calendar to be opened and the timezoneId. * \htmlonly<blockquote>\endhtmlonly * <pre> * \code * UCalendar *caldef; * UChar *tzId; * UErrorCode status; * tzId=(UChar*)malloc(sizeof(UChar) * (strlen("PST") +1) ); * u_uastrcpy(tzId, "PST"); * caldef=ucal_open(tzID, u_strlen(tzID), NULL, UCAL_TRADITIONAL, &status); * \endcode * </pre> * \htmlonly</blockquote>\endhtmlonly * * <p> * A <code>UCalendar</code> object can produce all the time field values * needed to implement the date-time formatting for a particular language * and calendar style (for example, Japanese-Gregorian, Japanese-Traditional). * * <p> * When computing a <code>UDate</code> from time fields, two special circumstances * may arise: there may be insufficient information to compute the * <code>UDate</code> (such as only year and month but no day in the month), * or there may be inconsistent information (such as "Tuesday, July 15, 1996" * -- July 15, 1996 is actually a Monday). * * <p> * <strong>Insufficient information.</strong> The calendar will use default * information to specify the missing fields. This may vary by calendar; for * the Gregorian calendar, the default for a field is the same as that of the * start of the epoch: i.e., UCAL_YEAR = 1970, UCAL_MONTH = JANUARY, UCAL_DATE = 1, etc. * * <p> * <strong>Inconsistent information.</strong> If fields conflict, the calendar * will give preference to fields set more recently. For example, when * determining the day, the calendar will look for one of the following * combinations of fields. The most recent combination, as determined by the * most recently set single field, will be used. * * \htmlonly<blockquote>\endhtmlonly * <pre> * \code * UCAL_MONTH + UCAL_DAY_OF_MONTH * UCAL_MONTH + UCAL_WEEK_OF_MONTH + UCAL_DAY_OF_WEEK * UCAL_MONTH + UCAL_DAY_OF_WEEK_IN_MONTH + UCAL_DAY_OF_WEEK * UCAL_DAY_OF_YEAR * UCAL_DAY_OF_WEEK + UCAL_WEEK_OF_YEAR * \endcode * </pre> * \htmlonly</blockquote>\endhtmlonly * * For the time of day: * * \htmlonly<blockquote>\endhtmlonly * <pre> * \code * UCAL_HOUR_OF_DAY * UCAL_AM_PM + UCAL_HOUR * \endcode * </pre> * \htmlonly</blockquote>\endhtmlonly * * <p> * <strong>Note:</strong> for some non-Gregorian calendars, different * fields may be necessary for complete disambiguation. For example, a full * specification of the historial Arabic astronomical calendar requires year, * month, day-of-month <em>and</em> day-of-week in some cases. * * <p> * <strong>Note:</strong> There are certain possible ambiguities in * interpretation of certain singular times, which are resolved in the * following ways: * <ol> * <li> 24:00:00 "belongs" to the following day. That is, * 23:59 on Dec 31, 1969 < 24:00 on Jan 1, 1970 < 24:01:00 on Jan 1, 1970 * * <li> Although historically not precise, midnight also belongs to "am", * and noon belongs to "pm", so on the same day, * 12:00 am (midnight) < 12:01 am, and 12:00 pm (noon) < 12:01 pm * </ol> * * <p> * The date or time format strings are not part of the definition of a * calendar, as those must be modifiable or overridable by the user at * runtime. Use {@link DateFormat} * to format dates. * * <p> * <code>Calendar</code> provides an API for field "rolling", where fields * can be incremented or decremented, but wrap around. For example, rolling the * month up in the date <code>December 12, <b>1996</b></code> results in * <code>January 12, <b>1996</b></code>. * * <p> * <code>Calendar</code> also provides a date arithmetic function for * adding the specified (signed) amount of time to a particular time field. * For example, subtracting 5 days from the date <code>September 12, 1996</code> * results in <code>September 7, 1996</code>. * * @stable ICU 2.0 */ /** A calendar. * For usage in C programs. * @stable ICU 2.0 */ typedef void* UCalendar; /** Possible types of UCalendars * @stable ICU 2.0 */ enum UCalendarType { /** * Despite the name, UCAL_TRADITIONAL designates the locale's default calendar, * which may be the Gregorian calendar or some other calendar. * @stable ICU 2.0 */ UCAL_TRADITIONAL, /** * Unambiguously designates the Gregorian calendar for the locale. * @stable ICU 2.0 */ UCAL_GREGORIAN, /** * A better name for UCAL_TRADITIONAL. * @draft ICU 4.2 */ UCAL_DEFAULT = UCAL_TRADITIONAL }; /** @stable ICU 2.0 */ typedef enum UCalendarType UCalendarType; /** Possible fields in a UCalendar * @stable ICU 2.0 */ enum UCalendarDateFields { /** * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar. * This is a calendar-specific value. * @stable ICU 2.6 */ UCAL_ERA, /** * Field number indicating the year. This is a calendar-specific value. * @stable ICU 2.6 */ UCAL_YEAR, /** * Field number indicating the month. This is a calendar-specific value. * The first month of the year is * <code>JANUARY</code>; the last depends on the number of months in a year. * @see #UCAL_JANUARY * @see #UCAL_FEBRUARY * @see #UCAL_MARCH * @see #UCAL_APRIL * @see #UCAL_MAY * @see #UCAL_JUNE * @see #UCAL_JULY * @see #UCAL_AUGUST * @see #UCAL_SEPTEMBER * @see #UCAL_OCTOBER * @see #UCAL_NOVEMBER * @see #UCAL_DECEMBER * @see #UCAL_UNDECIMBER * @stable ICU 2.6 */ UCAL_MONTH, /** * Field number indicating the * week number within the current year. The first week of the year, as * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code> * attributes, has value 1. Subclasses define * the value of <code>UCAL_WEEK_OF_YEAR</code> for days before the first week of * the year. * @see ucal_getAttribute * @see ucal_setAttribute * @stable ICU 2.6 */ UCAL_WEEK_OF_YEAR, /** * Field number indicating the * week number within the current month. The first week of the month, as * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code> * attributes, has value 1. Subclasses define * the value of <code>WEEK_OF_MONTH</code> for days before the first week of * the month. * @see ucal_getAttribute * @see ucal_setAttribute * @see #UCAL_FIRST_DAY_OF_WEEK * @see #UCAL_MINIMAL_DAYS_IN_FIRST_WEEK * @stable ICU 2.6 */ UCAL_WEEK_OF_MONTH, /** * Field number indicating the * day of the month. This is a synonym for <code>DAY_OF_MONTH</code>. * The first day of the month has value 1. * @see #UCAL_DAY_OF_MONTH * @stable ICU 2.6 */ UCAL_DATE, /** * Field number indicating the day * number within the current year. The first day of the year has value 1. * @stable ICU 2.6 */ UCAL_DAY_OF_YEAR, /** * Field number indicating the day * of the week. This field takes values <code>SUNDAY</code>, * <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>, * <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>. * @see #UCAL_SUNDAY * @see #UCAL_MONDAY * @see #UCAL_TUESDAY * @see #UCAL_WEDNESDAY * @see #UCAL_THURSDAY * @see #UCAL_FRIDAY * @see #UCAL_SATURDAY * @stable ICU 2.6 */ UCAL_DAY_OF_WEEK, /** * Field number indicating the * ordinal number of the day of the week within the current month. Together * with the <code>DAY_OF_WEEK</code> field, this uniquely specifies a day * within a month. Unlike <code>WEEK_OF_MONTH</code> and * <code>WEEK_OF_YEAR</code>, this field's value does <em>not</em> depend on * <code>getFirstDayOfWeek()</code> or * <code>getMinimalDaysInFirstWeek()</code>. <code>DAY_OF_MONTH 1</code> * through <code>7</code> always correspond to <code>DAY_OF_WEEK_IN_MONTH * 1</code>; <code>8</code> through <code>15</code> correspond to * <code>DAY_OF_WEEK_IN_MONTH 2</code>, and so on. * <code>DAY_OF_WEEK_IN_MONTH 0</code> indicates the week before * <code>DAY_OF_WEEK_IN_MONTH 1</code>. Negative values count back from the * end of the month, so the last Sunday of a month is specified as * <code>DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1</code>. Because * negative values count backward they will usually be aligned differently * within the month than positive values. For example, if a month has 31 * days, <code>DAY_OF_WEEK_IN_MONTH -1</code> will overlap * <code>DAY_OF_WEEK_IN_MONTH 5</code> and the end of <code>4</code>. * @see #UCAL_DAY_OF_WEEK * @see #UCAL_WEEK_OF_MONTH * @stable ICU 2.6 */ UCAL_DAY_OF_WEEK_IN_MONTH, /** * Field number indicating * whether the <code>HOUR</code> is before or after noon. * E.g., at 10:04:15.250 PM the <code>AM_PM</code> is <code>PM</code>. * @see #UCAL_AM * @see #UCAL_PM * @see #UCAL_HOUR * @stable ICU 2.6 */ UCAL_AM_PM, /** * Field number indicating the * hour of the morning or afternoon. <code>HOUR</code> is used for the 12-hour * clock. * E.g., at 10:04:15.250 PM the <code>HOUR</code> is 10. * @see #UCAL_AM_PM * @see #UCAL_HOUR_OF_DAY * @stable ICU 2.6 */ UCAL_HOUR, /** * Field number indicating the * hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock. * E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22. * @see #UCAL_HOUR * @stable ICU 2.6 */ UCAL_HOUR_OF_DAY, /** * Field number indicating the * minute within the hour. * E.g., at 10:04:15.250 PM the <code>UCAL_MINUTE</code> is 4. * @stable ICU 2.6 */ UCAL_MINUTE, /** * Field number indicating the * second within the minute. * E.g., at 10:04:15.250 PM the <code>UCAL_SECOND</code> is 15. * @stable ICU 2.6 */ UCAL_SECOND, /** * Field number indicating the * millisecond within the second. * E.g., at 10:04:15.250 PM the <code>UCAL_MILLISECOND</code> is 250. * @stable ICU 2.6 */ UCAL_MILLISECOND, /** * Field number indicating the * raw offset from GMT in milliseconds. * @stable ICU 2.6 */ UCAL_ZONE_OFFSET, /** * Field number indicating the * daylight savings offset in milliseconds. * @stable ICU 2.6 */ UCAL_DST_OFFSET, /** * Field number * indicating the extended year corresponding to the * <code>UCAL_WEEK_OF_YEAR</code> field. This may be one greater or less * than the value of <code>UCAL_EXTENDED_YEAR</code>. * @stable ICU 2.6 */ UCAL_YEAR_WOY, /** * Field number * indicating the localized day of week. This will be a value from 1 * to 7 inclusive, with 1 being the localized first day of the week. * @stable ICU 2.6 */ UCAL_DOW_LOCAL, /** * Year of this calendar system, encompassing all supra-year fields. For example, * in Gregorian/Julian calendars, positive Extended Year values indicate years AD, * 1 BC = 0 extended, 2 BC = -1 extended, and so on. * @stable ICU 2.8 */ UCAL_EXTENDED_YEAR, /** * Field number * indicating the modified Julian day number. This is different from * the conventional Julian day number in two regards. First, it * demarcates days at local zone midnight, rather than noon GMT. * Second, it is a local number; that is, it depends on the local time * zone. It can be thought of as a single number that encompasses all * the date-related fields. * @stable ICU 2.8 */ UCAL_JULIAN_DAY, /** * Ranges from 0 to 23:59:59.999 (regardless of DST). This field behaves <em>exactly</em> * like a composite of all time-related fields, not including the zone fields. As such, * it also reflects discontinuities of those fields on DST transition days. On a day * of DST onset, it will jump forward. On a day of DST cessation, it will jump * backward. This reflects the fact that it must be combined with the DST_OFFSET field * to obtain a unique local time value. * @stable ICU 2.8 */ UCAL_MILLISECONDS_IN_DAY, /** * Whether or not the current month is a leap month (0 or 1). See the Chinese calendar for * an example of this. */ UCAL_IS_LEAP_MONTH, /** * Field count * @stable ICU 2.6 */ UCAL_FIELD_COUNT, /** * Field number indicating the * day of the month. This is a synonym for <code>UCAL_DATE</code>. * The first day of the month has value 1. * @see #UCAL_DATE * Synonym for UCAL_DATE * @stable ICU 2.8 **/ UCAL_DAY_OF_MONTH=UCAL_DATE }; /** @stable ICU 2.0 */ typedef enum UCalendarDateFields UCalendarDateFields; /** * Useful constant for days of week. Note: Calendar day-of-week is 1-based. Clients * who create locale resources for the field of first-day-of-week should be aware of * this. For instance, in US locale, first-day-of-week is set to 1, i.e., UCAL_SUNDAY. */ /** Possible days of the week in a UCalendar * @stable ICU 2.0 */ enum UCalendarDaysOfWeek { /** Sunday */ UCAL_SUNDAY = 1, /** Monday */ UCAL_MONDAY, /** Tuesday */ UCAL_TUESDAY, /** Wednesday */ UCAL_WEDNESDAY, /** Thursday */ UCAL_THURSDAY, /** Friday */ UCAL_FRIDAY, /** Saturday */ UCAL_SATURDAY }; /** @stable ICU 2.0 */ typedef enum UCalendarDaysOfWeek UCalendarDaysOfWeek; /** Possible months in a UCalendar. Note: Calendar month is 0-based. * @stable ICU 2.0 */ enum UCalendarMonths { /** January */ UCAL_JANUARY, /** February */ UCAL_FEBRUARY, /** March */ UCAL_MARCH, /** April */ UCAL_APRIL, /** May */ UCAL_MAY, /** June */ UCAL_JUNE, /** July */ UCAL_JULY, /** August */ UCAL_AUGUST, /** September */ UCAL_SEPTEMBER, /** October */ UCAL_OCTOBER, /** November */ UCAL_NOVEMBER, /** December */ UCAL_DECEMBER, /** Value of the <code>UCAL_MONTH</code> field indicating the * thirteenth month of the year. Although the Gregorian calendar * does not use this value, lunar calendars do. */ UCAL_UNDECIMBER }; /** @stable ICU 2.0 */ typedef enum UCalendarMonths UCalendarMonths; /** Possible AM/PM values in a UCalendar * @stable ICU 2.0 */ enum UCalendarAMPMs { /** AM */ UCAL_AM, /** PM */ UCAL_PM }; /** @stable ICU 2.0 */ typedef enum UCalendarAMPMs UCalendarAMPMs; /** * Create an enumeration over all time zones. * * @param ec input/output error code * * @return an enumeration object that the caller must dispose of using * uenum_close(), or NULL upon failure. In case of failure *ec will * indicate the error. * * @stable ICU 2.6 */ U_STABLE UEnumeration* U_EXPORT2 ucal_openTimeZones(UErrorCode* ec); /** * Create an enumeration over all time zones associated with the given * country. Some zones are affiliated with no country (e.g., "UTC"); * these may also be retrieved, as a group. * * @param country the ISO 3166 two-letter country code, or NULL to * retrieve zones not affiliated with any country * * @param ec input/output error code * * @return an enumeration object that the caller must dispose of using * uenum_close(), or NULL upon failure. In case of failure *ec will * indicate the error. * * @stable ICU 2.6 */ U_STABLE UEnumeration* U_EXPORT2 ucal_openCountryTimeZones(const char* country, UErrorCode* ec); /** * Return the default time zone. The default is determined initially * by querying the host operating system. It may be changed with * ucal_setDefaultTimeZone() or with the C++ TimeZone API. * * @param result A buffer to receive the result, or NULL * * @param resultCapacity The capacity of the result buffer * * @param ec input/output error code * * @return The result string length, not including the terminating * null * * @stable ICU 2.6 */ U_STABLE int32_t U_EXPORT2 ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec); /** * Set the default time zone. * * @param zoneID null-terminated time zone ID * * @param ec input/output error code * * @stable ICU 2.6 */ U_STABLE void U_EXPORT2 ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec); /** * Return the amount of time in milliseconds that the clock is * advanced during daylight savings time for the given time zone, or * zero if the time zone does not observe daylight savings time. * * @param zoneID null-terminated time zone ID * * @param ec input/output error code * * @return the number of milliseconds the time is advanced with * respect to standard time when the daylight savings rules are in * effect. This is always a non-negative number, most commonly either * 3,600,000 (one hour) or zero. * * @stable ICU 2.6 */ U_STABLE int32_t U_EXPORT2 ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec); /** * Get the current date and time. * The value returned is represented as milliseconds from the epoch. * @return The current date and time. * @stable ICU 2.0 */ U_STABLE UDate U_EXPORT2 ucal_getNow(void); /** * Open a UCalendar. * A UCalendar may be used to convert a millisecond value to a year, * month, and day. * <p> * Note: When unknown TimeZone ID is specified, the UCalendar returned * by the function is initialized with GMT ("Etc/GMT") without any * errors/warnings. If you want to check if a TimeZone ID is valid, * use ucal_getCanonicalTimeZoneID prior to this function. * * @param zoneID The desired TimeZone ID. If 0, use the default time zone. * @param len The length of zoneID, or -1 if null-terminated. * @param locale The desired locale * @param type The type of UCalendar to open. This can be UCAL_GREGORIAN to open the Gregorian * calendar for the locale, or UCAL_DEFAULT to open the default calendar for the locale (the * default calendar may also be Gregorian). To open a specific non-Gregorian calendar for the * locale, use uloc_setKeywordValue to set the value of the calendar keyword for the locale * and then pass the locale to ucal_open with UCAL_DEFAULT as the type. * @param status A pointer to an UErrorCode to receive any errors * @return A pointer to a UCalendar, or 0 if an error occurred. * @stable ICU 2.0 */ U_STABLE UCalendar* U_EXPORT2 ucal_open(const UChar* zoneID, int32_t len, const char* locale, UCalendarType type, UErrorCode* status); /** * Close a UCalendar. * Once closed, a UCalendar may no longer be used. * @param cal The UCalendar to close. * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_close(UCalendar *cal); /** * Open a copy of a UCalendar. * This function performs a deep copy. * @param cal The calendar to copy * @param status A pointer to an UErrorCode to receive any errors. * @return A pointer to a UCalendar identical to cal. * @stable ICU 4.0 */ U_DRAFT UCalendar* U_EXPORT2 ucal_clone(const UCalendar* cal, UErrorCode* status); /** * Set the TimeZone used by a UCalendar. * A UCalendar uses a timezone for converting from Greenwich time to local time. * @param cal The UCalendar to set. * @param zoneID The desired TimeZone ID. If 0, use the default time zone. * @param len The length of zoneID, or -1 if null-terminated. * @param status A pointer to an UErrorCode to receive any errors. * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_setTimeZone(UCalendar* cal, const UChar* zoneID, int32_t len, UErrorCode* status); /** * Possible formats for a UCalendar's display name * @stable ICU 2.0 */ enum UCalendarDisplayNameType { /** Standard display name */ UCAL_STANDARD, /** Short standard display name */ UCAL_SHORT_STANDARD, /** Daylight savings display name */ UCAL_DST, /** Short daylight savings display name */ UCAL_SHORT_DST }; /** @stable ICU 2.0 */ typedef enum UCalendarDisplayNameType UCalendarDisplayNameType; /** * Get the display name for a UCalendar's TimeZone. * A display name is suitable for presentation to a user. * @param cal The UCalendar to query. * @param type The desired display name format; one of UCAL_STANDARD, UCAL_SHORT_STANDARD, * UCAL_DST, UCAL_SHORT_DST * @param locale The desired locale for the display name. * @param result A pointer to a buffer to receive the formatted number. * @param resultLength The maximum size of result. * @param status A pointer to an UErrorCode to receive any errors * @return The total buffer size needed; if greater than resultLength, the output was truncated. * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 ucal_getTimeZoneDisplayName(const UCalendar* cal, UCalendarDisplayNameType type, const char* locale, UChar* result, int32_t resultLength, UErrorCode* status); /** * Determine if a UCalendar is currently in daylight savings time. * Daylight savings time is not used in all parts of the world. * @param cal The UCalendar to query. * @param status A pointer to an UErrorCode to receive any errors * @return TRUE if cal is currently in daylight savings time, FALSE otherwise * @stable ICU 2.0 */ U_STABLE UBool U_EXPORT2 ucal_inDaylightTime(const UCalendar* cal, UErrorCode* status ); /** * Sets the GregorianCalendar change date. This is the point when the switch from * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October * 15, 1582. Previous to this time and date will be Julian dates. * * This function works only for Gregorian calendars. If the UCalendar is not * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR * error code is set. * * @param cal The calendar object. * @param date The given Gregorian cutover date. * @param pErrorCode Pointer to a standard ICU error code. Its input value must * pass the U_SUCCESS() test, or else the function returns * immediately. Check for U_FAILURE() on output or use with * function chaining. (See User Guide for details.) * * @see GregorianCalendar::setGregorianChange * @see ucal_getGregorianChange * @stable ICU 3.6 */ U_STABLE void U_EXPORT2 ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode); /** * Gets the Gregorian Calendar change date. This is the point when the switch from * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October * 15, 1582. Previous to this time and date will be Julian dates. * * This function works only for Gregorian calendars. If the UCalendar is not * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR * error code is set. * * @param cal The calendar object. * @param pErrorCode Pointer to a standard ICU error code. Its input value must * pass the U_SUCCESS() test, or else the function returns * immediately. Check for U_FAILURE() on output or use with * function chaining. (See User Guide for details.) * @return The Gregorian cutover time for this calendar. * * @see GregorianCalendar::getGregorianChange * @see ucal_setGregorianChange * @stable ICU 3.6 */ U_STABLE UDate U_EXPORT2 ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode); /** * Types of UCalendar attributes * @stable ICU 2.0 */ enum UCalendarAttribute { /** Lenient parsing */ UCAL_LENIENT, /** First day of week */ UCAL_FIRST_DAY_OF_WEEK, /** Minimum number of days in first week */ UCAL_MINIMAL_DAYS_IN_FIRST_WEEK }; /** @stable ICU 2.0 */ typedef enum UCalendarAttribute UCalendarAttribute; /** * Get a numeric attribute associated with a UCalendar. * Numeric attributes include the first day of the week, or the minimal numbers * of days in the first week of the month. * @param cal The UCalendar to query. * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK, * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK * @return The value of attr. * @see ucal_setAttribute * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 ucal_getAttribute(const UCalendar* cal, UCalendarAttribute attr); /** * Set a numeric attribute associated with a UCalendar. * Numeric attributes include the first day of the week, or the minimal numbers * of days in the first week of the month. * @param cal The UCalendar to set. * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK, * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK * @param newValue The new value of attr. * @see ucal_getAttribute * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_setAttribute(UCalendar* cal, UCalendarAttribute attr, int32_t newValue); /** * Get a locale for which calendars are available. * A UCalendar in a locale returned by this function will contain the correct * day and month names for the locale. * @param localeIndex The index of the desired locale. * @return A locale for which calendars are available, or 0 if none. * @see ucal_countAvailable * @stable ICU 2.0 */ U_STABLE const char* U_EXPORT2 ucal_getAvailable(int32_t localeIndex); /** * Determine how many locales have calendars available. * This function is most useful as determining the loop ending condition for * calls to \ref ucal_getAvailable. * @return The number of locales for which calendars are available. * @see ucal_getAvailable * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 ucal_countAvailable(void); /** * Get a UCalendar's current time in millis. * The time is represented as milliseconds from the epoch. * @param cal The UCalendar to query. * @param status A pointer to an UErrorCode to receive any errors * @return The calendar's current time in millis. * @see ucal_setMillis * @see ucal_setDate * @see ucal_setDateTime * @stable ICU 2.0 */ U_STABLE UDate U_EXPORT2 ucal_getMillis(const UCalendar* cal, UErrorCode* status); /** * Set a UCalendar's current time in millis. * The time is represented as milliseconds from the epoch. * @param cal The UCalendar to set. * @param dateTime The desired date and time. * @param status A pointer to an UErrorCode to receive any errors * @see ucal_getMillis * @see ucal_setDate * @see ucal_setDateTime * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_setMillis(UCalendar* cal, UDate dateTime, UErrorCode* status ); /** * Set a UCalendar's current date. * The date is represented as a series of 32-bit integers. * @param cal The UCalendar to set. * @param year The desired year. * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY, * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER * @param date The desired day of the month. * @param status A pointer to an UErrorCode to receive any errors * @see ucal_getMillis * @see ucal_setMillis * @see ucal_setDateTime * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_setDate(UCalendar* cal, int32_t year, int32_t month, int32_t date, UErrorCode* status); /** * Set a UCalendar's current date. * The date is represented as a series of 32-bit integers. * @param cal The UCalendar to set. * @param year The desired year. * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY, * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER * @param date The desired day of the month. * @param hour The desired hour of day. * @param minute The desired minute. * @param second The desirec second. * @param status A pointer to an UErrorCode to receive any errors * @see ucal_getMillis * @see ucal_setMillis * @see ucal_setDate * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_setDateTime(UCalendar* cal, int32_t year, int32_t month, int32_t date, int32_t hour, int32_t minute, int32_t second, UErrorCode* status); /** * Returns TRUE if two UCalendars are equivalent. Equivalent * UCalendars will behave identically, but they may be set to * different times. * @param cal1 The first of the UCalendars to compare. * @param cal2 The second of the UCalendars to compare. * @return TRUE if cal1 and cal2 are equivalent, FALSE otherwise. * @stable ICU 2.0 */ U_STABLE UBool U_EXPORT2 ucal_equivalentTo(const UCalendar* cal1, const UCalendar* cal2); /** * Add a specified signed amount to a particular field in a UCalendar. * This can modify more significant fields in the calendar. * @param cal The UCalendar to which to add. * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @param amount The signed amount to add to field. If the amount causes the value * to exceed to maximum or minimum values for that field, other fields are modified * to preserve the magnitude of the change. * @param status A pointer to an UErrorCode to receive any errors * @see ucal_roll * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_add(UCalendar* cal, UCalendarDateFields field, int32_t amount, UErrorCode* status); /** * Add a specified signed amount to a particular field in a UCalendar. * This will not modify more significant fields in the calendar. * @param cal The UCalendar to which to add. * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @param amount The signed amount to add to field. If the amount causes the value * to exceed to maximum or minimum values for that field, the field is pinned to a permissible * value. * @param status A pointer to an UErrorCode to receive any errors * @see ucal_add * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_roll(UCalendar* cal, UCalendarDateFields field, int32_t amount, UErrorCode* status); /** * Get the current value of a field from a UCalendar. * All fields are represented as 32-bit integers. * @param cal The UCalendar to query. * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @param status A pointer to an UErrorCode to receive any errors * @return The value of the desired field. * @see ucal_set * @see ucal_isSet * @see ucal_clearField * @see ucal_clear * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 ucal_get(const UCalendar* cal, UCalendarDateFields field, UErrorCode* status ); /** * Set the value of a field in a UCalendar. * All fields are represented as 32-bit integers. * @param cal The UCalendar to set. * @param field The field to set; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @param value The desired value of field. * @see ucal_get * @see ucal_isSet * @see ucal_clearField * @see ucal_clear * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_set(UCalendar* cal, UCalendarDateFields field, int32_t value); /** * Determine if a field in a UCalendar is set. * All fields are represented as 32-bit integers. * @param cal The UCalendar to query. * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @return TRUE if field is set, FALSE otherwise. * @see ucal_get * @see ucal_set * @see ucal_clearField * @see ucal_clear * @stable ICU 2.0 */ U_STABLE UBool U_EXPORT2 ucal_isSet(const UCalendar* cal, UCalendarDateFields field); /** * Clear a field in a UCalendar. * All fields are represented as 32-bit integers. * @param cal The UCalendar containing the field to clear. * @param field The field to clear; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @see ucal_get * @see ucal_set * @see ucal_isSet * @see ucal_clear * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_clearField(UCalendar* cal, UCalendarDateFields field); /** * Clear all fields in a UCalendar. * All fields are represented as 32-bit integers. * @param calendar The UCalendar to clear. * @see ucal_get * @see ucal_set * @see ucal_isSet * @see ucal_clearField * @stable ICU 2.0 */ U_STABLE void U_EXPORT2 ucal_clear(UCalendar* calendar); /** * Possible limit values for a UCalendar * @stable ICU 2.0 */ enum UCalendarLimitType { /** Minimum value */ UCAL_MINIMUM, /** Maximum value */ UCAL_MAXIMUM, /** Greatest minimum value */ UCAL_GREATEST_MINIMUM, /** Leaest maximum value */ UCAL_LEAST_MAXIMUM, /** Actual minimum value */ UCAL_ACTUAL_MINIMUM, /** Actual maximum value */ UCAL_ACTUAL_MAXIMUM }; /** @stable ICU 2.0 */ typedef enum UCalendarLimitType UCalendarLimitType; /** * Determine a limit for a field in a UCalendar. * A limit is a maximum or minimum value for a field. * @param cal The UCalendar to query. * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK, * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND, * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET. * @param type The desired critical point; one of UCAL_MINIMUM, UCAL_MAXIMUM, UCAL_GREATEST_MINIMUM, * UCAL_LEAST_MAXIMUM, UCAL_ACTUAL_MINIMUM, UCAL_ACTUAL_MAXIMUM * @param status A pointer to an UErrorCode to receive any errors. * @return The requested value. * @stable ICU 2.0 */ U_STABLE int32_t U_EXPORT2 ucal_getLimit(const UCalendar* cal, UCalendarDateFields field, UCalendarLimitType type, UErrorCode* status); /** Get the locale for this calendar object. You can choose between valid and actual locale. * @param cal The calendar object * @param type type of the locale we're looking for (valid or actual) * @param status error code for the operation * @return the locale name * @stable ICU 2.8 */ U_STABLE const char * U_EXPORT2 ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status); /** * Returns the timezone data version currently used by ICU. * @param status error code for the operation * @return the version string, such as "2007f" * @stable ICU 3.8 */ U_DRAFT const char * U_EXPORT2 ucal_getTZDataVersion(UErrorCode* status); /** * Returns the canonical system timezone ID or the normalized * custom time zone ID for the given time zone ID. * @param id The input timezone ID to be canonicalized. * @param len The length of id, or -1 if null-terminated. * @param result The buffer receives the canonical system timezone ID * or the custom timezone ID in normalized format. * @param resultCapacity The capacity of the result buffer. * @param isSystemID Receives if the given ID is a known system * timezone ID. * @param status Recevies the status. When the given timezone ID * is neither a known system time zone ID nor a * valid custom timezone ID, U_ILLEGAL_ARGUMENT_ERROR * is set. * @return The result string length, not including the terminating * null. * @stable ICU 4.0 */ U_DRAFT int32_t U_EXPORT2 ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len, UChar* result, int32_t resultCapacity, UBool *isSystemID, UErrorCode* status); /** * Get the resource keyword value string designating the calendar type for the UCalendar. * @param cal The UCalendar to query. * @param status The error code for the operation. * @return The resource keyword value string. * @draft ICU 4.2 */ U_DRAFT const char * U_EXPORT2 ucal_getType(const UCalendar *cal, UErrorCode* status); /** * Given a key and a locale, returns an array of string values in a preferred * order that would make a difference. These are all and only those values where * the open (creation) of the service with the locale formed from the input locale * plus input keyword and that value has different behavior than creation with the * input locale alone. * @param key one of the keys supported by this service. For now, only * "calendar" is supported. * @param locale the locale * @param commonlyUsed if set to true it will return only commonly used values * with the given locale in preferred order. Otherwise, * it will return all the available values for the locale. * @param status error status * @return a string enumeration over keyword values for the given key and the locale. * @draft ICU 4.2 */ U_DRAFT UEnumeration* U_EXPORT2 ucal_getKeywordValuesForLocale(const char* key, const char* locale, UBool commonlyUsed, UErrorCode* status); #endif /* #if !UCONFIG_NO_FORMATTING */ #endif
Save
cmd:
run