1f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/*
2f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *******************************************************************************
3f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Copyright (C) 1996-2010, International Business Machines Corporation and
4f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * others. All Rights Reserved.
5f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *******************************************************************************
6f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
7f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
8f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef UCAL_H
9f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#define UCAL_H
10f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
11f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "unicode/utypes.h"
12f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "unicode/uenum.h"
13f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "unicode/uloc.h"
14f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "unicode/localpointer.h"
15f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
16f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#if !UCONFIG_NO_FORMATTING
17f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
18f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
19f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \file
20f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \brief C API: Calendar
21f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
22f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <h2>Calendar C API</h2>
23f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
24f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCalendar C API is used  for converting between a <code>UDate</code> object
25f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * and a set of integer fields such as <code>UCAL_YEAR</code>, <code>UCAL_MONTH</code>,
26f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>UCAL_DAY</code>, <code>UCAL_HOUR</code>, and so on.
27f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * (A <code>UDate</code> object represents a specific instant in
28f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * time with millisecond precision. See UDate
29f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * for information about the <code>UDate</code> .)
30f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
31f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
32f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Types of <code>UCalendar</code> interpret a <code>UDate</code>
33f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * according to the rules of a specific calendar system. The U_STABLE
34f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * provides the enum UCalendarType with UCAL_TRADITIONAL and
35f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_GREGORIAN.
36f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
37f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Like other locale-sensitive C API, calendar API  provides a
38f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * function, <code>ucal_open()</code>, which returns a pointer to
39f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>UCalendar</code> whose time fields have been initialized
40f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * with the current date and time. We need to specify the type of
41f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * calendar to be opened and the  timezoneId.
42f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly<blockquote>\endhtmlonly
43f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <pre>
44f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \code
45f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCalendar *caldef;
46f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UChar *tzId;
47f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UErrorCode status;
48f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * tzId=(UChar*)malloc(sizeof(UChar) * (strlen("PST") +1) );
49f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * u_uastrcpy(tzId, "PST");
50f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * caldef=ucal_open(tzID, u_strlen(tzID), NULL, UCAL_TRADITIONAL, &status);
51f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \endcode
52f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * </pre>
53f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly</blockquote>\endhtmlonly
54f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
55f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
56f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A <code>UCalendar</code> object can produce all the time field values
57f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * needed to implement the date-time formatting for a particular language
58f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
59f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
60f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
61f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * When computing a <code>UDate</code> from time fields, two special circumstances
62f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * may arise: there may be insufficient information to compute the
63f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>UDate</code> (such as only year and month but no day in the month),
64f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * or there may be inconsistent information (such as "Tuesday, July 15, 1996"
65f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * -- July 15, 1996 is actually a Monday).
66f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
67f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
68f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <strong>Insufficient information.</strong> The calendar will use default
69f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * information to specify the missing fields. This may vary by calendar; for
70f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * the Gregorian calendar, the default for a field is the same as that of the
71f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * start of the epoch: i.e., UCAL_YEAR = 1970, UCAL_MONTH = JANUARY, UCAL_DATE = 1, etc.
72f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
73f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
74f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <strong>Inconsistent information.</strong> If fields conflict, the calendar
75f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * will give preference to fields set more recently. For example, when
76f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * determining the day, the calendar will look for one of the following
77f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * combinations of fields.  The most recent combination, as determined by the
78f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * most recently set single field, will be used.
79f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
80f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly<blockquote>\endhtmlonly
81f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <pre>
82f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \code
83f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MONTH + UCAL_DAY_OF_MONTH
84f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MONTH + UCAL_WEEK_OF_MONTH + UCAL_DAY_OF_WEEK
85f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MONTH + UCAL_DAY_OF_WEEK_IN_MONTH + UCAL_DAY_OF_WEEK
86f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_YEAR
87f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK + UCAL_WEEK_OF_YEAR
88f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \endcode
89f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * </pre>
90f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly</blockquote>\endhtmlonly
91f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
92f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * For the time of day:
93f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
94f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly<blockquote>\endhtmlonly
95f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <pre>
96f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \code
97f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_HOUR_OF_DAY
98f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_AM_PM + UCAL_HOUR
99f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \endcode
100f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * </pre>
101f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \htmlonly</blockquote>\endhtmlonly
102f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
103f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
104f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <strong>Note:</strong> for some non-Gregorian calendars, different
105f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * fields may be necessary for complete disambiguation. For example, a full
106f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * specification of the historial Arabic astronomical calendar requires year,
107f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * month, day-of-month <em>and</em> day-of-week in some cases.
108f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
109f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
110f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <strong>Note:</strong> There are certain possible ambiguities in
111f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * interpretation of certain singular times, which are resolved in the
112f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * following ways:
113f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <ol>
114f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *     <li> 24:00:00 "belongs" to the following day. That is,
115f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *          23:59 on Dec 31, 1969 &lt; 24:00 on Jan 1, 1970 &lt; 24:01:00 on Jan 1, 1970
116f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
117f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *     <li> Although historically not precise, midnight also belongs to "am",
118f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *          and noon belongs to "pm", so on the same day,
119f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *          12:00 am (midnight) &lt; 12:01 am, and 12:00 pm (noon) &lt; 12:01 pm
120f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * </ol>
121f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
122f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
123f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The date or time format strings are not part of the definition of a
124f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * calendar, as those must be modifiable or overridable by the user at
125f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * runtime. Use {@link DateFormat}
126f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * to format dates.
127f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
128f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
129f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>Calendar</code> provides an API for field "rolling", where fields
130f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * can be incremented or decremented, but wrap around. For example, rolling the
131f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * month up in the date <code>December 12, <b>1996</b></code> results in
132f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>January 12, <b>1996</b></code>.
133f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
134f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
135f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <code>Calendar</code> also provides a date arithmetic function for
136f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * adding the specified (signed) amount of time to a particular time field.
137f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * For example, subtracting 5 days from the date <code>September 12, 1996</code>
138f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * results in <code>September 7, 1996</code>.
139f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
140f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
141f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
142f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
143f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** A calendar.
144f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  For usage in C programs.
145f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
146f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
147f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef void* UCalendar;
148f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
149f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Possible types of UCalendars
150f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
151f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
152f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarType {
153f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
154f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Despite the name, UCAL_TRADITIONAL designates the locale's default calendar,
155f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * which may be the Gregorian calendar or some other calendar.
156f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.0
157f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
158f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_TRADITIONAL,
159f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
160f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * A better name for UCAL_TRADITIONAL.
161f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 4.2
162f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
163f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DEFAULT = UCAL_TRADITIONAL,
164f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
165f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Unambiguously designates the Gregorian calendar for the locale.
166f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.0
167f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
168f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_GREGORIAN
169f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
170f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
171f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
172f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarType UCalendarType;
173f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
174f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Possible fields in a UCalendar
175f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
176f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
177f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarDateFields {
178f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
179f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar.
180f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * This is a calendar-specific value.
181f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
182f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
183f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_ERA,
184f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
185f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
186f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the year. This is a calendar-specific value.
187f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
188f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
189f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_YEAR,
190f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
191f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
192f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the month. This is a calendar-specific value.
193f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * The first month of the year is
194f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>JANUARY</code>; the last depends on the number of months in a year.
195f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_JANUARY
196f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_FEBRUARY
197f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_MARCH
198f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_APRIL
199f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_MAY
200f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_JUNE
201f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_JULY
202f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_AUGUST
203f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_SEPTEMBER
204f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_OCTOBER
205f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_NOVEMBER
206f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_DECEMBER
207f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_UNDECIMBER
208f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
209f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
210f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MONTH,
211f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
212f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
213f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
214f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * week number within the current year.  The first week of the year, as
215f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
216f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * attributes, has value 1.  Subclasses define
217f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the value of <code>UCAL_WEEK_OF_YEAR</code> for days before the first week of
218f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the year.
219f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see ucal_getAttribute
220f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see ucal_setAttribute
221f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
222f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
223f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEK_OF_YEAR,
224f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
225f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
226f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
227f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * week number within the current month.  The first week of the month, as
228f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
229f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * attributes, has value 1.  Subclasses define
230f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the value of <code>WEEK_OF_MONTH</code> for days before the first week of
231f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the month.
232f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see ucal_getAttribute
233f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see ucal_setAttribute
234f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_FIRST_DAY_OF_WEEK
235f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
236f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
237f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
238f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEK_OF_MONTH,
239f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
240f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
241f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
242f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * day of the month. This is a synonym for <code>DAY_OF_MONTH</code>.
243f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * The first day of the month has value 1.
244f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_DAY_OF_MONTH
245f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
246f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
247f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DATE,
248f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
249f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
250f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the day
251f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * number within the current year.  The first day of the year has value 1.
252f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
253f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
254f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DAY_OF_YEAR,
255f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
256f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
257f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the day
258f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * of the week.  This field takes values <code>SUNDAY</code>,
259f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>,
260f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>.
261f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_SUNDAY
262f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_MONDAY
263f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_TUESDAY
264f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_WEDNESDAY
265f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_THURSDAY
266f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_FRIDAY
267f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_SATURDAY
268f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
269f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
270f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DAY_OF_WEEK,
271f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
272f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
273f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
274f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * ordinal number of the day of the week within the current month. Together
275f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * with the <code>DAY_OF_WEEK</code> field, this uniquely specifies a day
276f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * within a month.  Unlike <code>WEEK_OF_MONTH</code> and
277f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>WEEK_OF_YEAR</code>, this field's value does <em>not</em> depend on
278f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>getFirstDayOfWeek()</code> or
279f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>getMinimalDaysInFirstWeek()</code>.  <code>DAY_OF_MONTH 1</code>
280f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * through <code>7</code> always correspond to <code>DAY_OF_WEEK_IN_MONTH
281f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * 1</code>; <code>8</code> through <code>15</code> correspond to
282f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>DAY_OF_WEEK_IN_MONTH 2</code>, and so on.
283f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>DAY_OF_WEEK_IN_MONTH 0</code> indicates the week before
284f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>DAY_OF_WEEK_IN_MONTH 1</code>.  Negative values count back from the
285f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * end of the month, so the last Sunday of a month is specified as
286f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1</code>.  Because
287f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * negative values count backward they will usually be aligned differently
288f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * within the month than positive values.  For example, if a month has 31
289f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * days, <code>DAY_OF_WEEK_IN_MONTH -1</code> will overlap
290f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>DAY_OF_WEEK_IN_MONTH 5</code> and the end of <code>4</code>.
291f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_DAY_OF_WEEK
292f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_WEEK_OF_MONTH
293f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
294f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
295f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DAY_OF_WEEK_IN_MONTH,
296f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
297f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
298f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating
299f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * whether the <code>HOUR</code> is before or after noon.
300f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>AM_PM</code> is <code>PM</code>.
301f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_AM
302f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_PM
303f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_HOUR
304f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
305f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
306f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_AM_PM,
307f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
308f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
309f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
310f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * hour of the morning or afternoon. <code>HOUR</code> is used for the 12-hour
311f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * clock.
312f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>HOUR</code> is 10.
313f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_AM_PM
314f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_HOUR_OF_DAY
315f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
316f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
317f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_HOUR,
318f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
319f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
320f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
321f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
322f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22.
323f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_HOUR
324f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
325f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
326f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_HOUR_OF_DAY,
327f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
328f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
329f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
330f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * minute within the hour.
331f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>UCAL_MINUTE</code> is 4.
332f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
333f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
334f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MINUTE,
335f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
336f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
337f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
338f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * second within the minute.
339f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>UCAL_SECOND</code> is 15.
340f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
341f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
342f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SECOND,
343f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
344f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
345f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
346f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * millisecond within the second.
347f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * E.g., at 10:04:15.250 PM the <code>UCAL_MILLISECOND</code> is 250.
348f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
349f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
350f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MILLISECOND,
351f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
352f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
353f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
354f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * raw offset from GMT in milliseconds.
355f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
356f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
357f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_ZONE_OFFSET,
358f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
359f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
360f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
361f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * daylight savings offset in milliseconds.
362f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
363f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
364f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DST_OFFSET,
365f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
366f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
367f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number
368f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * indicating the extended year corresponding to the
369f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * <code>UCAL_WEEK_OF_YEAR</code> field.  This may be one greater or less
370f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * than the value of <code>UCAL_EXTENDED_YEAR</code>.
371f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
372f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
373f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_YEAR_WOY,
374f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
375f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
376f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number
377f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * indicating the localized day of week.  This will be a value from 1
378f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * to 7 inclusive, with 1 being the localized first day of the week.
379f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
380f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
381f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DOW_LOCAL,
382f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
383f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
384f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Year of this calendar system, encompassing all supra-year fields. For example,
385f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * in Gregorian/Julian calendars, positive Extended Year values indicate years AD,
386f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   *  1 BC = 0 extended, 2 BC = -1 extended, and so on.
387f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.8
388f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
389f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_EXTENDED_YEAR,
390f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
391f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
392f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number
393f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * indicating the modified Julian day number.  This is different from
394f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the conventional Julian day number in two regards.  First, it
395f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * demarcates days at local zone midnight, rather than noon GMT.
396f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Second, it is a local number; that is, it depends on the local time
397f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * zone.  It can be thought of as a single number that encompasses all
398f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * the date-related fields.
399f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.8
400f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
401f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_JULIAN_DAY,
402f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
403f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
404f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Ranges from 0 to 23:59:59.999 (regardless of DST).  This field behaves <em>exactly</em>
405f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * like a composite of all time-related fields, not including the zone fields.  As such,
406f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * it also reflects discontinuities of those fields on DST transition days.  On a day
407f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * of DST onset, it will jump forward.  On a day of DST cessation, it will jump
408f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * backward.  This reflects the fact that it must be combined with the DST_OFFSET field
409f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * to obtain a unique local time value.
410f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.8
411f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
412f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MILLISECONDS_IN_DAY,
413f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
414f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
415f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Whether or not the current month is a leap month (0 or 1). See the Chinese calendar for
416f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * an example of this.
417f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
418f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_IS_LEAP_MONTH,
419f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
420f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
421f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field count
422f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.6
423f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
424f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_FIELD_COUNT,
425f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
426f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) /**
427f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Field number indicating the
428f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * day of the month. This is a synonym for <code>UCAL_DATE</code>.
429f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * The first day of the month has value 1.
430f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @see #UCAL_DATE
431f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Synonym for UCAL_DATE
432f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 2.8
433f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   **/
434f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DAY_OF_MONTH=UCAL_DATE
435f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
436f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
437f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
438f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarDateFields UCalendarDateFields;
439f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    /**
440f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)     * Useful constant for days of week. Note: Calendar day-of-week is 1-based. Clients
441f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)     * who create locale resources for the field of first-day-of-week should be aware of
442f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)     * this. For instance, in US locale, first-day-of-week is set to 1, i.e., UCAL_SUNDAY.
443f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)     */
444f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Possible days of the week in a UCalendar
445f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
446f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
447f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarDaysOfWeek {
448f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Sunday */
449f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SUNDAY = 1,
450f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Monday */
451f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MONDAY,
452f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Tuesday */
453f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_TUESDAY,
454f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Wednesday */
455f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEDNESDAY,
456f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Thursday */
457f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_THURSDAY,
458f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Friday */
459f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_FRIDAY,
460f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Saturday */
461f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SATURDAY
462f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
463f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
464f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
465f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarDaysOfWeek UCalendarDaysOfWeek;
466f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
467f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Possible months in a UCalendar. Note: Calendar month is 0-based.
468f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
469f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
470f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarMonths {
471f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** January */
472f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_JANUARY,
473f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** February */
474f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_FEBRUARY,
475f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** March */
476f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MARCH,
477f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** April */
478f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_APRIL,
479f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** May */
480f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MAY,
481f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** June */
482f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_JUNE,
483f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** July */
484f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_JULY,
485f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** August */
486f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_AUGUST,
487f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** September */
488f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SEPTEMBER,
489f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** October */
490f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_OCTOBER,
491f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** November */
492f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_NOVEMBER,
493f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** December */
494f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DECEMBER,
495f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Value of the <code>UCAL_MONTH</code> field indicating the
496f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    * thirteenth month of the year. Although the Gregorian calendar
497f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    * does not use this value, lunar calendars do.
498f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    */
499f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_UNDECIMBER
500f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
501f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
502f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
503f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarMonths UCalendarMonths;
504f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
505f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Possible AM/PM values in a UCalendar
506f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
507f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
508f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarAMPMs {
509f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    /** AM */
510f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_AM,
511f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** PM */
512f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_PM
513f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
514f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
515f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
516f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarAMPMs UCalendarAMPMs;
517f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
518f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
519f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Create an enumeration over all time zones.
520f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
521f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param ec input/output error code
522f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
523f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return an enumeration object that the caller must dispose of using
524f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * uenum_close(), or NULL upon failure. In case of failure *ec will
525f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * indicate the error.
526f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
527f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.6
528f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
529f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UEnumeration* U_EXPORT2
530f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_openTimeZones(UErrorCode* ec);
531f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
532f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
533f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Create an enumeration over all time zones associated with the given
534f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * country. Some zones are affiliated with no country (e.g., "UTC");
535f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * these may also be retrieved, as a group.
536f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
537f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param country the ISO 3166 two-letter country code, or NULL to
538f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * retrieve zones not affiliated with any country
539f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
540f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param ec input/output error code
541f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
542f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return an enumeration object that the caller must dispose of using
543f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * uenum_close(), or NULL upon failure. In case of failure *ec will
544f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * indicate the error.
545f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
546f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.6
547f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
548f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UEnumeration* U_EXPORT2
549f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
550f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
551f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
552f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Return the default time zone. The default is determined initially
553f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * by querying the host operating system. It may be changed with
554f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * ucal_setDefaultTimeZone() or with the C++ TimeZone API.
555f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
556f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param result A buffer to receive the result, or NULL
557f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
558f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param resultCapacity The capacity of the result buffer
559f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
560f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param ec input/output error code
561f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
562f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The result string length, not including the terminating
563f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * null
564f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
565f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.6
566f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
567f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
568f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
569f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
570f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
571f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set the default time zone.
572f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
573f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param zoneID null-terminated time zone ID
574f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
575f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param ec input/output error code
576f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
577f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.6
578f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
579f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
580f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
581f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
582f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
583f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Return the amount of time in milliseconds that the clock is
584f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * advanced during daylight savings time for the given time zone, or
585f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * zero if the time zone does not observe daylight savings time.
586f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
587f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param zoneID null-terminated time zone ID
588f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
589f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param ec input/output error code
590f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
591f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return the number of milliseconds the time is advanced with
592f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * respect to standard time when the daylight savings rules are in
593f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * effect. This is always a non-negative number, most commonly either
594f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * 3,600,000 (one hour) or zero.
595f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
596f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.6
597f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
598f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
599f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec);
600f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
601f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
602f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get the current date and time.
603f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The value returned is represented as milliseconds from the epoch.
604f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The current date and time.
605f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
606f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
607f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UDate U_EXPORT2
608f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getNow(void);
609f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
610f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
611f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Open a UCalendar.
612f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A UCalendar may be used to convert a millisecond value to a year,
613f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * month, and day.
614f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * <p>
615f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Note: When unknown TimeZone ID is specified, the UCalendar returned
616f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * by the function is initialized with GMT ("Etc/GMT") without any
617f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * errors/warnings.  If you want to check if a TimeZone ID is valid,
618f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * use ucal_getCanonicalTimeZoneID prior to this function.
619f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
620f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param zoneID The desired TimeZone ID.  If 0, use the default time zone.
621f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param len The length of zoneID, or -1 if null-terminated.
622f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param locale The desired locale
623f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param type The type of UCalendar to open. This can be UCAL_GREGORIAN to open the Gregorian
624f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * calendar for the locale, or UCAL_DEFAULT to open the default calendar for the locale (the
625f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * default calendar may also be Gregorian). To open a specific non-Gregorian calendar for the
626f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * locale, use uloc_setKeywordValue to set the value of the calendar keyword for the locale
627f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * and then pass the locale to ucal_open with UCAL_DEFAULT as the type.
628f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
629f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return A pointer to a UCalendar, or 0 if an error occurred.
630f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
631f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
632f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UCalendar* U_EXPORT2
633f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_open(const UChar*   zoneID,
634f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          int32_t        len,
635f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          const char*    locale,
636f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          UCalendarType  type,
637f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          UErrorCode*    status);
638f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
639f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
640f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Close a UCalendar.
641f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Once closed, a UCalendar may no longer be used.
642f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to close.
643f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
644f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
645f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
646f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_close(UCalendar *cal);
647f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
648f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#if U_SHOW_CPLUSPLUS_API
649f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
650f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_NAMESPACE_BEGIN
651f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
652f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
653f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * \class LocalUCalendarPointer
654f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * "Smart pointer" class, closes a UCalendar via ucal_close().
655f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * For most methods see the LocalPointerBase base class.
656f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
657f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see LocalPointerBase
658f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see LocalPointer
659f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.4
660f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
661f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_DEFINE_LOCAL_OPEN_POINTER(LocalUCalendarPointer, UCalendar, ucal_close);
662f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
663f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_NAMESPACE_END
664f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
665f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif
666f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
667f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
668f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Open a copy of a UCalendar.
669f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This function performs a deep copy.
670f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The calendar to copy
671f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors.
672f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return A pointer to a UCalendar identical to cal.
673f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.0
674f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
675f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UCalendar* U_EXPORT2
676f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_clone(const UCalendar* cal,
677f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)           UErrorCode*      status);
678f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
679f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
680f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set the TimeZone used by a UCalendar.
681f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A UCalendar uses a timezone for converting from Greenwich time to local time.
682f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
683f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param zoneID The desired TimeZone ID.  If 0, use the default time zone.
684f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param len The length of zoneID, or -1 if null-terminated.
685f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors.
686f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
687f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
688f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
689f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setTimeZone(UCalendar*    cal,
690f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 const UChar*  zoneID,
691f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t       len,
692f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 UErrorCode*   status);
693f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
694f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
695f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Possible formats for a UCalendar's display name
696f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
697f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
698f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarDisplayNameType {
699f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Standard display name */
700f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_STANDARD,
701f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Short standard display name */
702f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SHORT_STANDARD,
703f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Daylight savings display name */
704f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_DST,
705f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Short daylight savings display name */
706f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_SHORT_DST
707f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
708f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
709f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
710f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarDisplayNameType UCalendarDisplayNameType;
711f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
712f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
713f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get the display name for a UCalendar's TimeZone.
714f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A display name is suitable for presentation to a user.
715f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal          The UCalendar to query.
716f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param type         The desired display name format; one of UCAL_STANDARD, UCAL_SHORT_STANDARD,
717f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                     UCAL_DST, UCAL_SHORT_DST
718f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param locale       The desired locale for the display name.
719f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param result       A pointer to a buffer to receive the formatted number.
720f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param resultLength The maximum size of result.
721f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status       A pointer to an UErrorCode to receive any errors
722f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return             The total buffer size needed; if greater than resultLength, the output was truncated.
723f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
724f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
725f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
726f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getTimeZoneDisplayName(const UCalendar*          cal,
727f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            UCalendarDisplayNameType  type,
728f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            const char*               locale,
729f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            UChar*                    result,
730f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            int32_t                   resultLength,
731f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            UErrorCode*               status);
732f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
733f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
734f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Determine if a UCalendar is currently in daylight savings time.
735f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Daylight savings time is not used in all parts of the world.
736f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
737f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
738f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return TRUE if cal is currently in daylight savings time, FALSE otherwise
739f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
740f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
741f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UBool U_EXPORT2
742f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_inDaylightTime(const UCalendar*  cal,
743f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                    UErrorCode*       status );
744f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
745f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
746f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Sets the GregorianCalendar change date. This is the point when the switch from
747f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
748f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * 15, 1582. Previous to this time and date will be Julian dates.
749f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
750f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This function works only for Gregorian calendars. If the UCalendar is not
751f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
752f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * error code is set.
753f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
754f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal        The calendar object.
755f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param date       The given Gregorian cutover date.
756f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param pErrorCode Pointer to a standard ICU error code. Its input value must
757f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   pass the U_SUCCESS() test, or else the function returns
758f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   immediately. Check for U_FAILURE() on output or use with
759f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   function chaining. (See User Guide for details.)
760f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
761f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see GregorianCalendar::setGregorianChange
762f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getGregorianChange
763f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 3.6
764f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
765f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
766f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode);
767f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
768f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
769f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Gets the Gregorian Calendar change date. This is the point when the switch from
770f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
771f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * 15, 1582. Previous to this time and date will be Julian dates.
772f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
773f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This function works only for Gregorian calendars. If the UCalendar is not
774f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
775f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * error code is set.
776f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
777f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal        The calendar object.
778f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param pErrorCode Pointer to a standard ICU error code. Its input value must
779f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   pass the U_SUCCESS() test, or else the function returns
780f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   immediately. Check for U_FAILURE() on output or use with
781f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                   function chaining. (See User Guide for details.)
782f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return   The Gregorian cutover time for this calendar.
783f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *
784f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see GregorianCalendar::getGregorianChange
785f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setGregorianChange
786f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 3.6
787f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
788f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UDate U_EXPORT2
789f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode);
790f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
791f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
792f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Types of UCalendar attributes
793f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
794f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
795f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarAttribute {
796f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)    /** Lenient parsing */
797f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_LENIENT,
798f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** First day of week */
799f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_FIRST_DAY_OF_WEEK,
800f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Minimum number of days in first week */
801f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
802f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
803f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
804f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
805f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarAttribute UCalendarAttribute;
806f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
807f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
808f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get a numeric attribute associated with a UCalendar.
809f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Numeric attributes include the first day of the week, or the minimal numbers
810f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * of days in the first week of the month.
811f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
812f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK,
813f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
814f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The value of attr.
815f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setAttribute
816f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
817f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
818f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
819f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getAttribute(const UCalendar*    cal,
820f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                  UCalendarAttribute  attr);
821f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
822f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
823f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set a numeric attribute associated with a UCalendar.
824f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Numeric attributes include the first day of the week, or the minimal numbers
825f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * of days in the first week of the month.
826f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
827f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param attr The desired attribute; one of UCAL_LENIENT, UCAL_FIRST_DAY_OF_WEEK,
828f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * or UCAL_MINIMAL_DAYS_IN_FIRST_WEEK
829f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param newValue The new value of attr.
830f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getAttribute
831f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
832f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
833f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
834f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setAttribute(UCalendar*          cal,
835f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                  UCalendarAttribute  attr,
836f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                  int32_t             newValue);
837f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
838f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
839f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get a locale for which calendars are available.
840f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A UCalendar in a locale returned by this function will contain the correct
841f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * day and month names for the locale.
842f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param localeIndex The index of the desired locale.
843f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return A locale for which calendars are available, or 0 if none.
844f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_countAvailable
845f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
846f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
847f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE const char* U_EXPORT2
848f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getAvailable(int32_t localeIndex);
849f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
850f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
851f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Determine how many locales have calendars available.
852f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This function is most useful as determining the loop ending condition for
853f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * calls to \ref ucal_getAvailable.
854f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The number of locales for which calendars are available.
855f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getAvailable
856f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
857f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
858f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
859f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_countAvailable(void);
860f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
861f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
862f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get a UCalendar's current time in millis.
863f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The time is represented as milliseconds from the epoch.
864f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
865f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
866f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The calendar's current time in millis.
867f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setMillis
868f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDate
869f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDateTime
870f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
871f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
872f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UDate U_EXPORT2
873f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getMillis(const UCalendar*  cal,
874f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)               UErrorCode*       status);
875f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
876f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
877f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set a UCalendar's current time in millis.
878f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The time is represented as milliseconds from the epoch.
879f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
880f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param dateTime The desired date and time.
881f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
882f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getMillis
883f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDate
884f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDateTime
885f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
886f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
887f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
888f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setMillis(UCalendar*   cal,
889f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)               UDate        dateTime,
890f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)               UErrorCode*  status );
891f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
892f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
893f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set a UCalendar's current date.
894f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The date is represented as a series of 32-bit integers.
895f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
896f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param year The desired year.
897f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY,
898f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER
899f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param date The desired day of the month.
900f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
901f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getMillis
902f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setMillis
903f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDateTime
904f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
905f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
906f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
907f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setDate(UCalendar*   cal,
908f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)             int32_t      year,
909f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)             int32_t      month,
910f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)             int32_t      date,
911f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)             UErrorCode*  status);
912f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
913f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
914f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set a UCalendar's current date.
915f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * The date is represented as a series of 32-bit integers.
916f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
917f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param year The desired year.
918f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param month The desired month; one of UCAL_JANUARY, UCAL_FEBRUARY, UCAL_MARCH, UCAL_APRIL, UCAL_MAY,
919f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_JUNE, UCAL_JULY, UCAL_AUGUST, UCAL_SEPTEMBER, UCAL_OCTOBER, UCAL_NOVEMBER, UCAL_DECEMBER, UCAL_UNDECIMBER
920f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param date The desired day of the month.
921f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param hour The desired hour of day.
922f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param minute The desired minute.
923f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param second The desirec second.
924f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
925f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_getMillis
926f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setMillis
927f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_setDate
928f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
929f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
930f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
931f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_setDateTime(UCalendar*   cal,
932f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      year,
933f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      month,
934f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      date,
935f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      hour,
936f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      minute,
937f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 int32_t      second,
938f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                 UErrorCode*  status);
939f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
940f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
941f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns TRUE if two UCalendars are equivalent.  Equivalent
942f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCalendars will behave identically, but they may be set to
943f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * different times.
944f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal1 The first of the UCalendars to compare.
945f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal2 The second of the UCalendars to compare.
946f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return TRUE if cal1 and cal2 are equivalent, FALSE otherwise.
947f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
948f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
949f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UBool U_EXPORT2
950f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_equivalentTo(const UCalendar*  cal1,
951f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                  const UCalendar*  cal2);
952f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
953f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
954f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Add a specified signed amount to a particular field in a UCalendar.
955f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This can modify more significant fields in the calendar.
956f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to which to add.
957f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
958f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
959f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
960f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
961f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param amount The signed amount to add to field. If the amount causes the value
962f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * to exceed to maximum or minimum values for that field, other fields are modified
963f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * to preserve the magnitude of the change.
964f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
965f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_roll
966f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
967f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
968f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
969f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_add(UCalendar*           cal,
970f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         UCalendarDateFields  field,
971f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         int32_t              amount,
972f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         UErrorCode*          status);
973f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
974f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
975f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Add a specified signed amount to a particular field in a UCalendar.
976f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * This will not modify more significant fields in the calendar.
977f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to which to add.
978f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The field to which to add the signed value; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
979f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
980f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
981f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
982f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param amount The signed amount to add to field. If the amount causes the value
983f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * to exceed to maximum or minimum values for that field, the field is pinned to a permissible
984f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * value.
985f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
986f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_add
987f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
988f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
989f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
990f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_roll(UCalendar*           cal,
991f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          UCalendarDateFields  field,
992f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          int32_t              amount,
993f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)          UErrorCode*          status);
994f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
995f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
996f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get the current value of a field from a UCalendar.
997f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * All fields are represented as 32-bit integers.
998f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
999f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
1000f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
1001f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
1002f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
1003f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors
1004f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The value of the desired field.
1005f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_set
1006f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_isSet
1007f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clearField
1008f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clear
1009f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1010f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1011f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
1012f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_get(const UCalendar*     cal,
1013f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         UCalendarDateFields  field,
1014f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         UErrorCode*          status );
1015f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1016f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1017f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Set the value of a field in a UCalendar.
1018f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * All fields are represented as 32-bit integers.
1019f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to set.
1020f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The field to set; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
1021f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
1022f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
1023f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
1024f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param value The desired value of field.
1025f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_get
1026f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_isSet
1027f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clearField
1028f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clear
1029f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1030f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1031f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
1032f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_set(UCalendar*           cal,
1033f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         UCalendarDateFields  field,
1034f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)         int32_t              value);
1035f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1036f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1037f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Determine if a field in a UCalendar is set.
1038f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * All fields are represented as 32-bit integers.
1039f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1040f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
1041f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
1042f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
1043f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
1044f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return TRUE if field is set, FALSE otherwise.
1045f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_get
1046f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_set
1047f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clearField
1048f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clear
1049f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1050f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1051f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UBool U_EXPORT2
1052f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_isSet(const UCalendar*     cal,
1053f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)           UCalendarDateFields  field);
1054f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1055f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1056f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Clear a field in a UCalendar.
1057f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * All fields are represented as 32-bit integers.
1058f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar containing the field to clear.
1059f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The field to clear; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
1060f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
1061f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
1062f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
1063f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_get
1064f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_set
1065f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_isSet
1066f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clear
1067f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1068f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1069f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
1070f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_clearField(UCalendar*           cal,
1071f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                UCalendarDateFields  field);
1072f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1073f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1074f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Clear all fields in a UCalendar.
1075f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * All fields are represented as 32-bit integers.
1076f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param calendar The UCalendar to clear.
1077f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_get
1078f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_set
1079f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_isSet
1080f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @see ucal_clearField
1081f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1082f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1083f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE void U_EXPORT2
1084f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_clear(UCalendar* calendar);
1085f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1086f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1087f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Possible limit values for a UCalendar
1088f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1089f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1090f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarLimitType {
1091f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Minimum value */
1092f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MINIMUM,
1093f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Maximum value */
1094f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_MAXIMUM,
1095f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Greatest minimum value */
1096f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_GREATEST_MINIMUM,
1097f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Leaest maximum value */
1098f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_LEAST_MAXIMUM,
1099f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Actual minimum value */
1100f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_ACTUAL_MINIMUM,
1101f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /** Actual maximum value */
1102f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_ACTUAL_MAXIMUM
1103f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
1104f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1105f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 2.0 */
1106f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarLimitType UCalendarLimitType;
1107f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1108f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1109f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Determine a limit for a field in a UCalendar.
1110f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * A limit is a maximum or minimum value for a field.
1111f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1112f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param field The desired field; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH,
1113f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_WEEK_OF_YEAR, UCAL_WEEK_OF_MONTH, UCAL_DATE, UCAL_DAY_OF_YEAR, UCAL_DAY_OF_WEEK,
1114f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_AM_PM, UCAL_HOUR, UCAL_HOUR_OF_DAY, UCAL_MINUTE, UCAL_SECOND,
1115f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_MILLISECOND, UCAL_ZONE_OFFSET, UCAL_DST_OFFSET.
1116f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param type The desired critical point; one of UCAL_MINIMUM, UCAL_MAXIMUM, UCAL_GREATEST_MINIMUM,
1117f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * UCAL_LEAST_MAXIMUM, UCAL_ACTUAL_MINIMUM, UCAL_ACTUAL_MAXIMUM
1118f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status A pointer to an UErrorCode to receive any errors.
1119f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The requested value.
1120f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 2.0
1121f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1122f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
1123f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getLimit(const UCalendar*     cal,
1124f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)              UCalendarDateFields  field,
1125f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)              UCalendarLimitType   type,
1126f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)              UErrorCode*          status);
1127f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1128f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Get the locale for this calendar object. You can choose between valid and actual locale.
1129f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  @param cal The calendar object
1130f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  @param type type of the locale we're looking for (valid or actual)
1131f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  @param status error code for the operation
1132f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  @return the locale name
1133f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *  @stable ICU 2.8
1134f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1135f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE const char * U_EXPORT2
1136f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status);
1137f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1138f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1139f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns the timezone data version currently used by ICU.
1140f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status error code for the operation
1141f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return the version string, such as "2007f"
1142f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 3.8
1143f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1144f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE const char * U_EXPORT2
1145f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getTZDataVersion(UErrorCode* status);
1146f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1147f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1148f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns the canonical system timezone ID or the normalized
1149f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * custom time zone ID for the given time zone ID.
1150f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param id        The input timezone ID to be canonicalized.
1151f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param len       The length of id, or -1 if null-terminated.
1152f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param result    The buffer receives the canonical system timezone ID
1153f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                  or the custom timezone ID in normalized format.
1154f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param resultCapacity    The capacity of the result buffer.
1155f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param isSystemID        Receives if the given ID is a known system
1156f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)     *                      timezone ID.
1157f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status    Recevies the status.  When the given timezone ID
1158f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                  is neither a known system time zone ID nor a
1159f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                  valid custom timezone ID, U_ILLEGAL_ARGUMENT_ERROR
1160f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                  is set.
1161f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return          The result string length, not including the terminating
1162f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                  null.
1163f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.0
1164f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1165f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
1166f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len,
1167f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                            UChar* result, int32_t resultCapacity, UBool *isSystemID, UErrorCode* status);
1168f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1169f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Get the resource keyword value string designating the calendar type for the UCalendar.
1170f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1171f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status The error code for the operation.
1172f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The resource keyword value string.
1173f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.2
1174f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1175f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE const char * U_EXPORT2
1176f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getType(const UCalendar *cal, UErrorCode* status);
1177f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1178f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1179f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Given a key and a locale, returns an array of string values in a preferred
1180f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * order that would make a difference. These are all and only those values where
1181f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * the open (creation) of the service with the locale formed from the input locale
1182f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * plus input keyword and that value has different behavior than creation with the
1183f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * input locale alone.
1184f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param key           one of the keys supported by this service.  For now, only
1185f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                      "calendar" is supported.
1186f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param locale        the locale
1187f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param commonlyUsed  if set to true it will return only commonly used values
1188f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                      with the given locale in preferred order.  Otherwise,
1189f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) *                      it will return all the available values for the locale.
1190f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status error status
1191f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return a string enumeration over keyword values for the given key and the locale.
1192f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.2
1193f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1194f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UEnumeration* U_EXPORT2
1195f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getKeywordValuesForLocale(const char* key,
1196f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                               const char* locale,
1197f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                               UBool commonlyUsed,
1198f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)                               UErrorCode* status);
1199f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1200f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1201f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** Weekday types, as returned by ucal_getDayOfWeekType().
1202f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.4
1203f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1204f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum UCalendarWeekdayType {
1205f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
1206f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Designates a full weekday (no part of the day is included in the weekend).
1207f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 4.4
1208f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
1209f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEKDAY,
1210f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
1211f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Designates a full weekend day (the entire day is included in the weekend).
1212f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 4.4
1213f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
1214f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEKEND,
1215f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
1216f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Designates a day that starts as a weekday and transitions to the weekend.
1217f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Call ucal_getWeekendTransition() to get the time of transition.
1218f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 4.4
1219f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
1220f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEKEND_ONSET,
1221f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  /**
1222f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Designates a day that starts as the weekend and transitions to a weekday.
1223f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * Call ucal_getWeekendTransition() to get the time of transition.
1224f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   * @stable ICU 4.4
1225f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)   */
1226f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)  UCAL_WEEKEND_CEASE
1227f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)};
1228f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1229f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/** @stable ICU 4.4 */
1230f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef enum UCalendarWeekdayType UCalendarWeekdayType;
1231f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1232f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1233f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns whether the given day of the week is a weekday, a
1234f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * weekend day, or a day that transitions from one to the other,
1235f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * in this calendar system. If a transition occurs at midnight,
1236f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * then the days before and after the transition will have the
1237f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * type UCAL_WEEKDAY or UCAL_WEEKEND. If a transition occurs at a time
1238f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * other than midnight, then the day of the transition will have
1239f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * the type UCAL_WEEKEND_ONSET or UCAL_WEEKEND_CEASE. In this case, the
1240f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * method getWeekendTransition() will return the point of
1241f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * transition.
1242f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1243f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param dayOfWeek The day of the week whose type is desired (UCAL_SUNDAY..UCAL_SATURDAY).
1244f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status The error code for the operation.
1245f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The UCalendarWeekdayType for the day of the week.
1246f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.4
1247f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1248f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UCalendarWeekdayType U_EXPORT2
1249f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getDayOfWeekType(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode* status);
1250f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1251f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1252f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns the time during the day at which the weekend begins or ends in
1253f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * this calendar system.  If ucal_getDayOfWeekType() rerturns UCAL_WEEKEND_ONSET
1254f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * for the specified dayOfWeek, return the time at which the weekend begins.
1255f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * If ucal_getDayOfWeekType() returns UCAL_WEEKEND_CEASE for the specified dayOfWeek,
1256f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * return the time at which the weekend ends. If ucal_getDayOfWeekType() returns
1257f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * some other UCalendarWeekdayType for the specified dayOfWeek, is it an error condition
1258f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * (U_ILLEGAL_ARGUMENT_ERROR).
1259f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1260f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param dayOfWeek The day of the week for which the weekend transition time is
1261f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * desired (UCAL_SUNDAY..UCAL_SATURDAY).
1262f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status The error code for the operation.
1263f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return The milliseconds after midnight at which the weekend begins or ends.
1264f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.4
1265f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1266f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE int32_t U_EXPORT2
1267f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_getWeekendTransition(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode *status);
1268f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1269f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/**
1270f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * Returns TRUE if the given UDate is in the weekend in
1271f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * this calendar system.
1272f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param cal The UCalendar to query.
1273f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param date The UDate in question.
1274f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @param status The error code for the operation.
1275f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @return TRUE if the given UDate is in the weekend in
1276f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * this calendar system, FALSE otherwise.
1277f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) * @stable ICU 4.4
1278f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) */
1279f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_STABLE UBool U_EXPORT2
1280f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status);
1281f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1282f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1283f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif /* #if !UCONFIG_NO_FORMATTING */
1284f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)
1285f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif
1286