xref: /aosp_15_r20/external/icu/libicu/cts_headers/indiancal.h (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others.
2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html
3*0e209d39SAndroid Build Coastguard Worker /*
4*0e209d39SAndroid Build Coastguard Worker  *****************************************************************************
5*0e209d39SAndroid Build Coastguard Worker  * Copyright (C) 2003-2008, International Business Machines Corporation
6*0e209d39SAndroid Build Coastguard Worker  * and others. All Rights Reserved.
7*0e209d39SAndroid Build Coastguard Worker  *****************************************************************************
8*0e209d39SAndroid Build Coastguard Worker  *
9*0e209d39SAndroid Build Coastguard Worker  * File INDIANCAL.H
10*0e209d39SAndroid Build Coastguard Worker  *****************************************************************************
11*0e209d39SAndroid Build Coastguard Worker  */
12*0e209d39SAndroid Build Coastguard Worker 
13*0e209d39SAndroid Build Coastguard Worker #ifndef INDIANCAL_H
14*0e209d39SAndroid Build Coastguard Worker #define INDIANCAL_H
15*0e209d39SAndroid Build Coastguard Worker 
16*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h"
17*0e209d39SAndroid Build Coastguard Worker 
18*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_FORMATTING
19*0e209d39SAndroid Build Coastguard Worker 
20*0e209d39SAndroid Build Coastguard Worker #include "unicode/calendar.h"
21*0e209d39SAndroid Build Coastguard Worker 
22*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_BEGIN
23*0e209d39SAndroid Build Coastguard Worker 
24*0e209d39SAndroid Build Coastguard Worker /**
25*0e209d39SAndroid Build Coastguard Worker  * Concrete class which provides the Indian calendar.
26*0e209d39SAndroid Build Coastguard Worker  * <P>
27*0e209d39SAndroid Build Coastguard Worker  * <code>IndianCalendar</code> is a subclass of <code>Calendar</code>
28*0e209d39SAndroid Build Coastguard Worker  * that numbers years since the beginning of SAKA ERA.  This is the civil calendar
29*0e209d39SAndroid Build Coastguard Worker  * which is accepted by government of India as Indian National Calendar.
30*0e209d39SAndroid Build Coastguard Worker  * The two calendars most widely used in India today are the Vikrama calendar
31*0e209d39SAndroid Build Coastguard Worker  * followed in North India and the Shalivahana or Saka calendar which is followed
32*0e209d39SAndroid Build Coastguard Worker  * in South India and Maharashtra.
33*0e209d39SAndroid Build Coastguard Worker 
34*0e209d39SAndroid Build Coastguard Worker  * A variant of the Shalivahana Calendar was reformed and standardized as the
35*0e209d39SAndroid Build Coastguard Worker  * Indian National calendar in 1957.
36*0e209d39SAndroid Build Coastguard Worker  * <p>
37*0e209d39SAndroid Build Coastguard Worker  * Some details of Indian National Calendar (to be implemented) :
38*0e209d39SAndroid Build Coastguard Worker  * The Months
39*0e209d39SAndroid Build Coastguard Worker  * Month          Length      Start date (Gregorian)
40*0e209d39SAndroid Build Coastguard Worker  * =================================================
41*0e209d39SAndroid Build Coastguard Worker  * 1 Chaitra      30/31          March 22*
42*0e209d39SAndroid Build Coastguard Worker  * 2 Vaisakha     31             April 21
43*0e209d39SAndroid Build Coastguard Worker  * 3 Jyaistha     31             May 22
44*0e209d39SAndroid Build Coastguard Worker  * 4 Asadha       31             June 22
45*0e209d39SAndroid Build Coastguard Worker  * 5 Sravana      31             July 23
46*0e209d39SAndroid Build Coastguard Worker  * 6 Bhadra       31             August 23
47*0e209d39SAndroid Build Coastguard Worker  * 7 Asvina       30             September 23
48*0e209d39SAndroid Build Coastguard Worker  * 8 Kartika      30             October 23
49*0e209d39SAndroid Build Coastguard Worker  * 9 Agrahayana   30             November 22
50*0e209d39SAndroid Build Coastguard Worker  * 10 Pausa       30             December 22
51*0e209d39SAndroid Build Coastguard Worker  * 11 Magha       30             January 21
52*0e209d39SAndroid Build Coastguard Worker  * 12 Phalguna    30             February 20
53*0e209d39SAndroid Build Coastguard Worker 
54*0e209d39SAndroid Build Coastguard Worker  * In leap years, Chaitra has 31 days and starts on March 21 instead.
55*0e209d39SAndroid Build Coastguard Worker  * The leap years of Gregorian calendar and Indian National Calendar are in synchornization.
56*0e209d39SAndroid Build Coastguard Worker  * So When its a leap year in Gregorian calendar then Chaitra has 31 days.
57*0e209d39SAndroid Build Coastguard Worker  *
58*0e209d39SAndroid Build Coastguard Worker  * The Years
59*0e209d39SAndroid Build Coastguard Worker  * Years are counted in the Saka Era, which starts its year 0 in 78AD (by gregorian calendar).
60*0e209d39SAndroid Build Coastguard Worker  * So for eg. 9th June 2006 by Gregorian Calendar, is same as 19th of Jyaistha in 1928 of Saka
61*0e209d39SAndroid Build Coastguard Worker  * era by Indian National Calendar.
62*0e209d39SAndroid Build Coastguard Worker  * <p>
63*0e209d39SAndroid Build Coastguard Worker  * The Indian Calendar has only one allowable era: <code>Saka Era</code>.  If the
64*0e209d39SAndroid Build Coastguard Worker  * calendar is not in lenient mode (see <code>setLenient</code>), dates before
65*0e209d39SAndroid Build Coastguard Worker  * 1/1/1 Saka Era are rejected with an <code>IllegalArgumentException</code>.
66*0e209d39SAndroid Build Coastguard Worker  * <p>
67*0e209d39SAndroid Build Coastguard Worker  * @internal
68*0e209d39SAndroid Build Coastguard Worker  */
69*0e209d39SAndroid Build Coastguard Worker 
70*0e209d39SAndroid Build Coastguard Worker 
71*0e209d39SAndroid Build Coastguard Worker class U_I18N_API IndianCalendar : public Calendar {
72*0e209d39SAndroid Build Coastguard Worker public:
73*0e209d39SAndroid Build Coastguard Worker   /**
74*0e209d39SAndroid Build Coastguard Worker    * Useful constants for IndianCalendar.
75*0e209d39SAndroid Build Coastguard Worker    * @internal
76*0e209d39SAndroid Build Coastguard Worker    */
77*0e209d39SAndroid Build Coastguard Worker   enum EEras {
78*0e209d39SAndroid Build Coastguard Worker     /**
79*0e209d39SAndroid Build Coastguard Worker      * Constant for Chaitra, the 1st month of the Indian year.
80*0e209d39SAndroid Build Coastguard Worker      */
81*0e209d39SAndroid Build Coastguard Worker       CHAITRA,
82*0e209d39SAndroid Build Coastguard Worker 
83*0e209d39SAndroid Build Coastguard Worker       /**
84*0e209d39SAndroid Build Coastguard Worker      * Constant for Vaisakha, the 2nd month of the Indian year.
85*0e209d39SAndroid Build Coastguard Worker      */
86*0e209d39SAndroid Build Coastguard Worker       VAISAKHA,
87*0e209d39SAndroid Build Coastguard Worker 
88*0e209d39SAndroid Build Coastguard Worker       /**
89*0e209d39SAndroid Build Coastguard Worker      * Constant for Jyaistha, the 3rd month of the Indian year.
90*0e209d39SAndroid Build Coastguard Worker      */
91*0e209d39SAndroid Build Coastguard Worker       JYAISTHA,
92*0e209d39SAndroid Build Coastguard Worker 
93*0e209d39SAndroid Build Coastguard Worker     /**
94*0e209d39SAndroid Build Coastguard Worker      * Constant for Asadha, the 4th month of the Indian year.
95*0e209d39SAndroid Build Coastguard Worker      */
96*0e209d39SAndroid Build Coastguard Worker       ASADHA,
97*0e209d39SAndroid Build Coastguard Worker 
98*0e209d39SAndroid Build Coastguard Worker     /**
99*0e209d39SAndroid Build Coastguard Worker      * Constant for Sravana, the 5th month of the Indian year.
100*0e209d39SAndroid Build Coastguard Worker      */
101*0e209d39SAndroid Build Coastguard Worker       SRAVANA,
102*0e209d39SAndroid Build Coastguard Worker 
103*0e209d39SAndroid Build Coastguard Worker     /**
104*0e209d39SAndroid Build Coastguard Worker      * Constant for Bhadra the 6th month of the Indian year
105*0e209d39SAndroid Build Coastguard Worker      */
106*0e209d39SAndroid Build Coastguard Worker       BHADRA,
107*0e209d39SAndroid Build Coastguard Worker 
108*0e209d39SAndroid Build Coastguard Worker     /**
109*0e209d39SAndroid Build Coastguard Worker      * Constant for the Asvina, the 7th month of the Indian year.
110*0e209d39SAndroid Build Coastguard Worker      */
111*0e209d39SAndroid Build Coastguard Worker       ASVINA,
112*0e209d39SAndroid Build Coastguard Worker 
113*0e209d39SAndroid Build Coastguard Worker     /**
114*0e209d39SAndroid Build Coastguard Worker      * Constant for Kartika, the 8th month of the Indian year.
115*0e209d39SAndroid Build Coastguard Worker      */
116*0e209d39SAndroid Build Coastguard Worker       KARTIKA,
117*0e209d39SAndroid Build Coastguard Worker 
118*0e209d39SAndroid Build Coastguard Worker     /**
119*0e209d39SAndroid Build Coastguard Worker      * Constant for Agrahayana, the 9th month of the Indian year.
120*0e209d39SAndroid Build Coastguard Worker      */
121*0e209d39SAndroid Build Coastguard Worker       AGRAHAYANA,
122*0e209d39SAndroid Build Coastguard Worker 
123*0e209d39SAndroid Build Coastguard Worker     /**
124*0e209d39SAndroid Build Coastguard Worker      * Constant for Pausa, the 10th month of the Indian year.
125*0e209d39SAndroid Build Coastguard Worker      */
126*0e209d39SAndroid Build Coastguard Worker       PAUSA,
127*0e209d39SAndroid Build Coastguard Worker 
128*0e209d39SAndroid Build Coastguard Worker     /**
129*0e209d39SAndroid Build Coastguard Worker      * Constant for Magha, the 11th month of the Indian year.
130*0e209d39SAndroid Build Coastguard Worker      */
131*0e209d39SAndroid Build Coastguard Worker       MAGHA,
132*0e209d39SAndroid Build Coastguard Worker 
133*0e209d39SAndroid Build Coastguard Worker     /**
134*0e209d39SAndroid Build Coastguard Worker      * Constant for Phalguna, the 12th month of the Indian year.
135*0e209d39SAndroid Build Coastguard Worker      */
136*0e209d39SAndroid Build Coastguard Worker       PHALGUNA
137*0e209d39SAndroid Build Coastguard Worker     };
138*0e209d39SAndroid Build Coastguard Worker 
139*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
140*0e209d39SAndroid Build Coastguard Worker   // Constructors...
141*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
142*0e209d39SAndroid Build Coastguard Worker 
143*0e209d39SAndroid Build Coastguard Worker   /**
144*0e209d39SAndroid Build Coastguard Worker    * Constructs an IndianCalendar based on the current time in the default time zone
145*0e209d39SAndroid Build Coastguard Worker    * with the given locale.
146*0e209d39SAndroid Build Coastguard Worker    *
147*0e209d39SAndroid Build Coastguard Worker    * @param aLocale  The given locale.
148*0e209d39SAndroid Build Coastguard Worker    * @param success  Indicates the status of IndianCalendar object construction.
149*0e209d39SAndroid Build Coastguard Worker    *                 Returns U_ZERO_ERROR if constructed successfully.
150*0e209d39SAndroid Build Coastguard Worker    * @param beCivil  Whether the calendar should be civil (default-true) or religious (false)
151*0e209d39SAndroid Build Coastguard Worker    * @internal
152*0e209d39SAndroid Build Coastguard Worker    */
153*0e209d39SAndroid Build Coastguard Worker   IndianCalendar(const Locale& aLocale, UErrorCode &success);
154*0e209d39SAndroid Build Coastguard Worker 
155*0e209d39SAndroid Build Coastguard Worker   /**
156*0e209d39SAndroid Build Coastguard Worker    * Copy Constructor
157*0e209d39SAndroid Build Coastguard Worker    * @internal
158*0e209d39SAndroid Build Coastguard Worker    */
159*0e209d39SAndroid Build Coastguard Worker   IndianCalendar(const IndianCalendar& other);
160*0e209d39SAndroid Build Coastguard Worker 
161*0e209d39SAndroid Build Coastguard Worker   /**
162*0e209d39SAndroid Build Coastguard Worker    * Destructor.
163*0e209d39SAndroid Build Coastguard Worker    * @internal
164*0e209d39SAndroid Build Coastguard Worker    */
165*0e209d39SAndroid Build Coastguard Worker   virtual ~IndianCalendar();
166*0e209d39SAndroid Build Coastguard Worker 
167*0e209d39SAndroid Build Coastguard Worker   /**
168*0e209d39SAndroid Build Coastguard Worker    * Determines whether this object uses the fixed-cycle Indian civil calendar
169*0e209d39SAndroid Build Coastguard Worker    * or an approximation of the religious, astronomical calendar.
170*0e209d39SAndroid Build Coastguard Worker    *
171*0e209d39SAndroid Build Coastguard Worker    * @param beCivil   <code>CIVIL</code> to use the civil calendar,
172*0e209d39SAndroid Build Coastguard Worker    *                  <code>ASTRONOMICAL</code> to use the astronomical calendar.
173*0e209d39SAndroid Build Coastguard Worker    * @internal
174*0e209d39SAndroid Build Coastguard Worker    */
175*0e209d39SAndroid Build Coastguard Worker   //void setCivil(ECivil beCivil, UErrorCode &status);
176*0e209d39SAndroid Build Coastguard Worker 
177*0e209d39SAndroid Build Coastguard Worker   /**
178*0e209d39SAndroid Build Coastguard Worker    * Returns <code>true</code> if this object is using the fixed-cycle civil
179*0e209d39SAndroid Build Coastguard Worker    * calendar, or <code>false</code> if using the religious, astronomical
180*0e209d39SAndroid Build Coastguard Worker    * calendar.
181*0e209d39SAndroid Build Coastguard Worker    * @internal
182*0e209d39SAndroid Build Coastguard Worker    */
183*0e209d39SAndroid Build Coastguard Worker   //UBool isCivil();
184*0e209d39SAndroid Build Coastguard Worker 
185*0e209d39SAndroid Build Coastguard Worker 
186*0e209d39SAndroid Build Coastguard Worker   // TODO: copy c'tor, etc
187*0e209d39SAndroid Build Coastguard Worker 
188*0e209d39SAndroid Build Coastguard Worker   // clone
189*0e209d39SAndroid Build Coastguard Worker   virtual IndianCalendar* clone() const override;
190*0e209d39SAndroid Build Coastguard Worker 
191*0e209d39SAndroid Build Coastguard Worker  private:
192*0e209d39SAndroid Build Coastguard Worker   /**
193*0e209d39SAndroid Build Coastguard Worker    * Determine whether a year is the gregorian year a leap year
194*0e209d39SAndroid Build Coastguard Worker    */
195*0e209d39SAndroid Build Coastguard Worker   //static UBool isGregorianLeap(int32_t year);
196*0e209d39SAndroid Build Coastguard Worker   //----------------------------------------------------------------------
197*0e209d39SAndroid Build Coastguard Worker   // Calendar framework
198*0e209d39SAndroid Build Coastguard Worker   //----------------------------------------------------------------------
199*0e209d39SAndroid Build Coastguard Worker  protected:
200*0e209d39SAndroid Build Coastguard Worker   /**
201*0e209d39SAndroid Build Coastguard Worker    * @internal
202*0e209d39SAndroid Build Coastguard Worker    */
203*0e209d39SAndroid Build Coastguard Worker   virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override;
204*0e209d39SAndroid Build Coastguard Worker 
205*0e209d39SAndroid Build Coastguard Worker   /**
206*0e209d39SAndroid Build Coastguard Worker    * Return the length (in days) of the given month.
207*0e209d39SAndroid Build Coastguard Worker    *
208*0e209d39SAndroid Build Coastguard Worker    * @param year  The year in Saka era
209*0e209d39SAndroid Build Coastguard Worker    * @param year  The month(0-based) in Indian year
210*0e209d39SAndroid Build Coastguard Worker    * @internal
211*0e209d39SAndroid Build Coastguard Worker    */
212*0e209d39SAndroid Build Coastguard Worker   virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month, UErrorCode& status) const override;
213*0e209d39SAndroid Build Coastguard Worker 
214*0e209d39SAndroid Build Coastguard Worker   /**
215*0e209d39SAndroid Build Coastguard Worker    * Return the number of days in the given Indian year
216*0e209d39SAndroid Build Coastguard Worker    * @internal
217*0e209d39SAndroid Build Coastguard Worker    */
218*0e209d39SAndroid Build Coastguard Worker   virtual int32_t handleGetYearLength(int32_t extendedYear) const override;
219*0e209d39SAndroid Build Coastguard Worker 
220*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
221*0e209d39SAndroid Build Coastguard Worker   // Functions for converting from field values to milliseconds....
222*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
223*0e209d39SAndroid Build Coastguard Worker 
224*0e209d39SAndroid Build Coastguard Worker   // Return JD of start of given month/year
225*0e209d39SAndroid Build Coastguard Worker   /**
226*0e209d39SAndroid Build Coastguard Worker    * @internal
227*0e209d39SAndroid Build Coastguard Worker    */
228*0e209d39SAndroid Build Coastguard Worker   virtual int64_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth, UErrorCode& status) const override;
229*0e209d39SAndroid Build Coastguard Worker 
230*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
231*0e209d39SAndroid Build Coastguard Worker   // Functions for converting from milliseconds to field values
232*0e209d39SAndroid Build Coastguard Worker   //-------------------------------------------------------------------------
233*0e209d39SAndroid Build Coastguard Worker 
234*0e209d39SAndroid Build Coastguard Worker   /**
235*0e209d39SAndroid Build Coastguard Worker    * @internal
236*0e209d39SAndroid Build Coastguard Worker    */
237*0e209d39SAndroid Build Coastguard Worker   virtual int32_t handleGetExtendedYear(UErrorCode& status) override;
238*0e209d39SAndroid Build Coastguard Worker 
239*0e209d39SAndroid Build Coastguard Worker   /**
240*0e209d39SAndroid Build Coastguard Worker    * Override Calendar to compute several fields specific to the Indian
241*0e209d39SAndroid Build Coastguard Worker    * calendar system.  These are:
242*0e209d39SAndroid Build Coastguard Worker    *
243*0e209d39SAndroid Build Coastguard Worker    * <ul><li>ERA
244*0e209d39SAndroid Build Coastguard Worker    * <li>YEAR
245*0e209d39SAndroid Build Coastguard Worker    * <li>MONTH
246*0e209d39SAndroid Build Coastguard Worker    * <li>DAY_OF_MONTH
247*0e209d39SAndroid Build Coastguard Worker    * <li>DAY_OF_YEAR
248*0e209d39SAndroid Build Coastguard Worker    * <li>EXTENDED_YEAR</ul>
249*0e209d39SAndroid Build Coastguard Worker    *
250*0e209d39SAndroid Build Coastguard Worker    * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this
251*0e209d39SAndroid Build Coastguard Worker    * method is called. The getGregorianXxx() methods return Gregorian
252*0e209d39SAndroid Build Coastguard Worker    * calendar equivalents for the given Julian day.
253*0e209d39SAndroid Build Coastguard Worker    * @internal
254*0e209d39SAndroid Build Coastguard Worker    */
255*0e209d39SAndroid Build Coastguard Worker   virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override;
256*0e209d39SAndroid Build Coastguard Worker 
257*0e209d39SAndroid Build Coastguard Worker   // UObject stuff
258*0e209d39SAndroid Build Coastguard Worker  public:
259*0e209d39SAndroid Build Coastguard Worker   /**
260*0e209d39SAndroid Build Coastguard Worker    * @return   The class ID for this object. All objects of a given class have the
261*0e209d39SAndroid Build Coastguard Worker    *           same class ID. Objects of other classes have different class IDs.
262*0e209d39SAndroid Build Coastguard Worker    * @internal
263*0e209d39SAndroid Build Coastguard Worker    */
264*0e209d39SAndroid Build Coastguard Worker   virtual UClassID getDynamicClassID() const override;
265*0e209d39SAndroid Build Coastguard Worker 
266*0e209d39SAndroid Build Coastguard Worker   /**
267*0e209d39SAndroid Build Coastguard Worker    * Return the class ID for this class. This is useful only for comparing to a return
268*0e209d39SAndroid Build Coastguard Worker    * value from getDynamicClassID(). For example:
269*0e209d39SAndroid Build Coastguard Worker    *
270*0e209d39SAndroid Build Coastguard Worker    *      Base* polymorphic_pointer = createPolymorphicObject();
271*0e209d39SAndroid Build Coastguard Worker    *      if (polymorphic_pointer->getDynamicClassID() ==
272*0e209d39SAndroid Build Coastguard Worker    *          Derived::getStaticClassID()) ...
273*0e209d39SAndroid Build Coastguard Worker    *
274*0e209d39SAndroid Build Coastguard Worker    * @return   The class ID for all objects of this class.
275*0e209d39SAndroid Build Coastguard Worker    * @internal
276*0e209d39SAndroid Build Coastguard Worker    */
277*0e209d39SAndroid Build Coastguard Worker   static UClassID U_EXPORT2 getStaticClassID();
278*0e209d39SAndroid Build Coastguard Worker 
279*0e209d39SAndroid Build Coastguard Worker   /**
280*0e209d39SAndroid Build Coastguard Worker    * return the calendar type, "indian".
281*0e209d39SAndroid Build Coastguard Worker    *
282*0e209d39SAndroid Build Coastguard Worker    * @return calendar type
283*0e209d39SAndroid Build Coastguard Worker    * @internal
284*0e209d39SAndroid Build Coastguard Worker    */
285*0e209d39SAndroid Build Coastguard Worker   virtual const char * getType() const override;
286*0e209d39SAndroid Build Coastguard Worker 
287*0e209d39SAndroid Build Coastguard Worker   /**
288*0e209d39SAndroid Build Coastguard Worker    * @return      The related Gregorian year; will be obtained by modifying the value
289*0e209d39SAndroid Build Coastguard Worker    *              obtained by get from UCAL_EXTENDED_YEAR field
290*0e209d39SAndroid Build Coastguard Worker    * @internal
291*0e209d39SAndroid Build Coastguard Worker    */
292*0e209d39SAndroid Build Coastguard Worker   virtual int32_t getRelatedYear(UErrorCode &status) const override;
293*0e209d39SAndroid Build Coastguard Worker 
294*0e209d39SAndroid Build Coastguard Worker   /**
295*0e209d39SAndroid Build Coastguard Worker    * @param year  The related Gregorian year to set; will be modified as necessary then
296*0e209d39SAndroid Build Coastguard Worker    *              set in UCAL_EXTENDED_YEAR field
297*0e209d39SAndroid Build Coastguard Worker    * @internal
298*0e209d39SAndroid Build Coastguard Worker    */
299*0e209d39SAndroid Build Coastguard Worker   virtual void setRelatedYear(int32_t year) override;
300*0e209d39SAndroid Build Coastguard Worker 
301*0e209d39SAndroid Build Coastguard Worker 
302*0e209d39SAndroid Build Coastguard Worker private:
303*0e209d39SAndroid Build Coastguard Worker   IndianCalendar() = delete; // default constructor not implemented
304*0e209d39SAndroid Build Coastguard Worker 
305*0e209d39SAndroid Build Coastguard Worker   // Default century.
306*0e209d39SAndroid Build Coastguard Worker protected:
307*0e209d39SAndroid Build Coastguard Worker 
308*0e209d39SAndroid Build Coastguard Worker   DECLARE_OVERRIDE_SYSTEM_DEFAULT_CENTURY
309*0e209d39SAndroid Build Coastguard Worker };
310*0e209d39SAndroid Build Coastguard Worker 
311*0e209d39SAndroid Build Coastguard Worker U_NAMESPACE_END
312*0e209d39SAndroid Build Coastguard Worker 
313*0e209d39SAndroid Build Coastguard Worker #endif
314*0e209d39SAndroid Build Coastguard Worker #endif
315*0e209d39SAndroid Build Coastguard Worker 
316*0e209d39SAndroid Build Coastguard Worker 
317*0e209d39SAndroid Build Coastguard Worker 
318