1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ******************************************************************************** 385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Copyright (C) 2003-2008, International Business Machines Corporation 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ******************************************************************************** 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * File JAPANCAL.H 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Modification History: 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Date Name Description 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 05/13/2003 srl copied from gregocal.h 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ******************************************************************************** 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef JAPANCAL_H 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#define JAPANCAL_H 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h" 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/calendar.h" 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/gregocal.h" 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/** 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Concrete class which provides the Japanese calendar. 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <P> 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <code>JapaneseCalendar</code> is a subclass of <code>GregorianCalendar</code> 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * that numbers years and eras based on the reigns of the Japanese emperors. 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * The Japanese calendar is identical to the Gregorian calendar in all respects 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * except for the year and era. The ascension of each emperor to the throne 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * begins a new era, and the years of that era are numbered starting with the 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * year of ascension as year 1. 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <p> 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Note that in the year of an imperial ascension, there are two possible sets 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * of year and era values: that for the old era and for the new. For example, a 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * new era began on January 7, 1989 AD. Strictly speaking, the first six days 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * of that year were in the Showa era, e.g. "January 6, 64 Showa", while the rest 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * of the year was in the Heisei era, e.g. "January 7, 1 Heisei". This class 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * handles this distinction correctly when computing dates. However, in lenient 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * mode either form of date is acceptable as input. 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <p> 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * In modern times, eras have started on January 8, 1868 AD, Gregorian (Meiji), 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * for these eras, suitable for use in the <code>UCAL_ERA</code> field, are provided 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * in this class. Note that the <em>number</em> used for each era is more or 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * less arbitrary. Currently, the era starting in 1053 AD is era #0; however this 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * may change in the future as we add more historical data. Use the predefined 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * constants rather than using actual, absolute numbers. 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * <p> 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruclass JapaneseCalendar : public GregorianCalendar { 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Useful constants for JapaneseCalendar. 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru U_I18N_API static uint32_t U_EXPORT2 getCurrentEra(void); // the current era 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Constructs a JapaneseCalendar based on the current time in the default time zone 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * with the given locale. 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param aLocale The given locale. 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param success Indicates the status of JapaneseCalendar object construction. 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Returns U_ZERO_ERROR if constructed successfully. 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @stable ICU 2.0 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru JapaneseCalendar(const Locale& aLocale, UErrorCode& success); 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Destructor 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual ~JapaneseCalendar(); 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Copy constructor 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param source the object to be copied. 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru JapaneseCalendar(const JapaneseCalendar& source); 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Default assignment operator 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @param right the object to be copied. 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru JapaneseCalendar& operator=(const JapaneseCalendar& right); 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Create and return a polymorphic copy of this calendar. 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return return a polymorphic copy of this calendar. 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual Calendar* clone(void) const; 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the extended year defined by the current fields. In the 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Japanese calendar case, this is equal to the equivalent extended Gregorian year. 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual int32_t handleGetExtendedYear(); 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 11185bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho /** 11285bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Return the maximum value that this field could have, given the current date. 11385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * @internal 11485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho */ 11585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const; 11685bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho 11785bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho 118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querupublic: 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Override Calendar Returns a unique class ID POLYMORPHICALLY. Pure virtual 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * override. This method is to implement a simple version of RTTI, since not all C++ 122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * compilers support genuine RTTI. Polymorphic operator==() and clone() methods call 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * this method. 124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return The class ID for this object. All objects of a given class have the 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * same class ID. Objects of other classes have different class IDs. 127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual UClassID getDynamicClassID(void) const; 130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Return the class ID for this class. This is useful only for comparing to a return 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * value from getDynamicClassID(). For example: 134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Base* polymorphic_pointer = createPolymorphicObject(); 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * if (polymorphic_pointer->getDynamicClassID() == 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Derived::getStaticClassID()) ... 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return The class ID for all objects of this class. 140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * return the calendar type, "japanese". 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * 147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return calendar type 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual const char * getType() const; 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @return FALSE - no default century in Japanese 154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual UBool haveDefaultCentury() const; 157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Not used - no default century. 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual UDate defaultCenturyStart() const; 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Not used - no default century. 165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual int32_t defaultCenturyStartYear() const; 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprivate: 170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru JapaneseCalendar(); // default constructor not implemented 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruprotected: 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Calculate the era for internal computation 175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual int32_t internalGetEra() const; 178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Compute fields from the JD 181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual void handleComputeFields(int32_t julianDay, UErrorCode& status); 184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /** 186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Calculate the limit for a specified type of limit and field 187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; 190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /*** 192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Called by computeJulianDay. Returns the default month (0-based) for the year, 193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * taking year and era into account. Will return the first month of the given era, if 194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * the current year is an ascension year. 19585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * @param eyear the extended year 196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 19885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho virtual int32_t getDefaultMonthInYear(int32_t eyear); 199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru /*** 201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Called by computeJulianDay. Returns the default day (1-based) for the month, 202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * taking currently-set year and era into account. Will return the first day of the given 203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * era, if the current month is an ascension year and month. 20485bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * @param eyear the extended year 20585bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * @param mon the month in the year 206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * @internal 207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 20885bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho virtual int32_t getDefaultDayInMonth(int32_t eyear, int32_t month); 209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}; 210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif 216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru//eof 217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 218