1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru****************************************************************************** 359d709d503bab6e2b61931737e662dd293b40578ccornelius* Copyright (C) 2003-2013, International Business Machines Corporation 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* and others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru****************************************************************************** 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* File HEBRWCAL.H 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Modification History: 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Date Name Description 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 05/13/2003 srl copied from gregocal.h 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 11/26/2003 srl copied from buddhcal.h 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru****************************************************************************** 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/ 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef HEBRWCAL_H 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define HEBRWCAL_H 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/utypes.h" 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#if !UCONFIG_NO_FORMATTING 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/calendar.h" 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/gregocal.h" 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_BEGIN 28b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <code>HebrewCalendar</code> is a subclass of <code>Calendar</code> 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * that that implements the traditional Hebrew calendar. 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This is the civil calendar in Israel and the liturgical calendar 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * of the Jewish faith worldwide. 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The Hebrew calendar is lunisolar and thus has a number of interesting 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * properties that distinguish it from the Gregorian. Months start 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * on the day of (an arithmetic approximation of) each new moon. Since the 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * solar year (approximately 365.24 days) is not an even multiple of 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the lunar month (approximately 29.53 days) an extra "leap month" is 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * inserted in 7 out of every 19 years. To make matters even more 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * interesting, the start of a year can be delayed by up to three days 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * in order to prevent certain holidays from falling on the Sabbath and 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * to prevent certain illegal year lengths. Finally, the lengths of certain 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * months can vary depending on the number of days in the year. 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The leap month is known as "Adar 1" and is inserted between the 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * months of Shevat and Adar in leap years. Since the leap month does 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * not come at the end of the year, calculations involving 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * month numbers are particularly complex. Users of this class should 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * make sure to use the {@link #roll roll} and {@link #add add} methods 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * rather than attempting to perform date arithmetic by manipulating 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the fields directly. 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <b>Note:</b> In the traditional Hebrew calendar, days start at sunset. 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * However, in order to keep the time fields in this class 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * synchronized with those of the other calendars and with local clock time, 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * we treat days and months as beginning at midnight, 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * roughly 6 hours after the corresponding sunset. 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If you are interested in more information on the rules behind the Hebrew 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * calendar, see one of the following references: 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <ul> 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>"<a href="http://www.amazon.com/exec/obidos/ASIN/0521564743">Calendrical Calculations</a>", 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * by Nachum Dershowitz & Edward Reingold, Cambridge University Press, 1997, pages 85-91. 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>Hebrew Calendar Science and Myths, 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://www.geocities.com/Athens/1584/"> 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * http://www.geocities.com/Athens/1584/</a> 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>The Calendar FAQ, 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://www.faqs.org/faqs/calendars/faq/"> 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * http://www.faqs.org/faqs/calendars/faq/</a> 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * </ul> 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see com.ibm.icu.util.GregorianCalendar 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @author Laura Werner 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @author Alan Liu 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @author Steven R. Loomis 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 8350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoclass U_I18N_API HebrewCalendar : public Calendar { 84b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 85b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Useful constants for HebrewCalendar. 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru enum EEras { 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Tishri, the 1st month of the Hebrew year. 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TISHRI, 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Heshvan, the 2nd month of the Hebrew year. 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru HESHVAN, 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Kislev, the 3rd month of the Hebrew year. 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru KISLEV, 102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Tevet, the 4th month of the Hebrew year. 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TEVET, 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Shevat, the 5th month of the Hebrew year. 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SHEVAT, 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Adar I, the 6th month of the Hebrew year 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (present in leap years only). In non-leap years, the calendar 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * jumps from Shevat (5th month) to Adar (7th month). 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ADAR_1, 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for the Adar, the 7th month of the Hebrew year. 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ADAR, 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Nisan, the 8th month of the Hebrew year. 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru NISAN, 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Iyar, the 9th month of the Hebrew year. 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru IYAR, 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Sivan, the 10th month of the Hebrew year. 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru SIVAN, 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Tammuz, the 11th month of the Hebrew year. 142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru TAMUZ, 144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Av, the 12th month of the Hebrew year. 147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru AV, 149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constant for Elul, the 13th month of the Hebrew year. 152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ELUL 154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru }; 155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Constructs a HebrewCalendar based on the current time in the default time zone 158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * with the given locale. 159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param aLocale The given locale. 161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param success Indicates the status of HebrewCalendar object construction. 162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns U_ZERO_ERROR if constructed successfully. 163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru HebrewCalendar(const Locale& aLocale, UErrorCode& success); 166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Destructor 170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual ~HebrewCalendar(); 173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Copy constructor 176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param source the object to be copied. 177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru HebrewCalendar(const HebrewCalendar& source); 180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Default assignment operator 183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param right the object to be copied. 184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru HebrewCalendar& operator=(const HebrewCalendar& right); 187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Create and return a polymorphic copy of this calendar. 190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return return a polymorphic copy of this calendar. 191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual Calendar* clone(void) const; 194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querupublic: 196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Override Calendar Returns a unique class ID POLYMORPHICALLY. Pure virtual 198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * override. This method is to implement a simple version of RTTI, since not all C++ 199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * compilers support genuine RTTI. Polymorphic operator==() and clone() methods call 200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * this method. 201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return The class ID for this object. All objects of a given class have the 203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * same class ID. Objects of other classes have different class IDs. 204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual UClassID getDynamicClassID(void) const; 207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the class ID for this class. This is useful only for comparing to a return 210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * value from getDynamicClassID(). For example: 211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Base* polymorphic_pointer = createPolymorphicObject(); 213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if (polymorphic_pointer->getDynamicClassID() == 214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Derived::getStaticClassID()) ... 215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return The class ID for all objects of this class. 217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 21950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho static UClassID U_EXPORT2 getStaticClassID(void); 220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * return the calendar type, "hebrew". 223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return calendar type 225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 227b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual const char * getType() const; 228b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 229b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 230b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru // Calendar API 231b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru public: 232b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 233b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (Overrides Calendar) UDate Arithmetic function. Adds the specified (signed) amount 234b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * of time to the given time field, based on the calendar's rules. For more 235b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * information, see the documentation for Calendar::add(). 236b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 237b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param field The time field. 238b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param amount The amount of date or time to be added to the field. 239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Output param set to success/failure code on exit. If any value 240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * previously set in the time field is invalid, this will be set to 241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * an error status. 242b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 243b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode& status); 244b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 245b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @deprecated ICU 2.6 use UCalendarDateFields instead of EDateFields 246b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 247b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void add(EDateFields field, int32_t amount, UErrorCode& status); 248b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 249b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 250b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 251b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (Overrides Calendar) Rolls up or down by the given amount in the specified field. 252b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * For more information, see the documentation for Calendar::roll(). 253b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 254b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param field The time field. 255b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param amount Indicates amount to roll. 256b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Output param set to success/failure code on exit. If any value 257b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * previously set in the time field is invalid, this will be set to 258b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * an error status. 259b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 260b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 261b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status); 262b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 263b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 264b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (Overrides Calendar) Rolls up or down by the given amount in the specified field. 265b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * For more information, see the documentation for Calendar::roll(). 266b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 267b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param field The time field. 268b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param amount Indicates amount to roll. 269b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Output param set to success/failure code on exit. If any value 270b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * previously set in the time field is invalid, this will be set to 271b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * an error status. 272b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @deprecated ICU 2.6. Use roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead. 273b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru` */ 274b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void roll(EDateFields field, int32_t amount, UErrorCode& status); 275b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 27650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho /** 27750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @internal 27850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */ 27950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho static UBool isLeapYear(int32_t year) ; 280b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 281b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru protected: 282b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 283b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 284b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Subclass API for defining limits of different types. 285b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Subclasses must implement this method to return limits for the 286b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * following fields: 287b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 288b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <pre>UCAL_ERA 289b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_YEAR 290b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_MONTH 291b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_WEEK_OF_YEAR 292b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_WEEK_OF_MONTH 293b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_DATE (DAY_OF_MONTH on Java) 294b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_DAY_OF_YEAR 295b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_DAY_OF_WEEK_IN_MONTH 296b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_YEAR_WOY 297b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UCAL_EXTENDED_YEAR</pre> 298b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 299b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param field one of the above field numbers 300b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param limitType one of <code>MINIMUM</code>, <code>GREATEST_MINIMUM</code>, 301b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <code>LEAST_MAXIMUM</code>, or <code>MAXIMUM</code> 302b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 303b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 304b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; 305b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 306b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 307b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the number of days in the given month of the given extended 308b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * year of this calendar system. Subclasses should override this 309b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * method if they can provide a more correct or more efficient 310b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * implementation than the default implementation in Calendar. 311b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 312b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 313b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; 314b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 315b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 316b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the number of days in the given extended year of this 317b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * calendar system. Subclasses should override this method if they can 318b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * provide a more correct or more efficient implementation than the 319b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * default implementation in Calendar. 320b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 321b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 322b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t handleGetYearLength(int32_t eyear) const; 323b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 324b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Subclasses may override this method to compute several fields 325b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * specific to each calendar system. These are: 326b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 327b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <ul><li>ERA 328b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>YEAR 329b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>MONTH 330b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>DAY_OF_MONTH 331b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>DAY_OF_YEAR 332b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>EXTENDED_YEAR</ul> 333b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 334b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p>The GregorianCalendar implementation implements 335b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a calendar with the specified Julian/Gregorian cutover date. 336b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 337b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 338b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); 339b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 340b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the extended year defined by the current fields. This will 341b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * use the UCAL_EXTENDED_YEAR field or the UCAL_YEAR and supra-year fields (such 342b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as UCAL_ERA) specific to the calendar system, depending on which set of 343b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * fields is newer. 344b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return the extended year 345b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 346b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 347b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t handleGetExtendedYear(); 348b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 349b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the Julian day number of day before the first day of the 350b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * given month in the given extended year. Subclasses should override 351b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * this method to implement their calendar system. 352b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param eyear the extended year 353b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param month the zero-based month, or 0 if useMonth is false 354b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param useMonth if false, compute the day before the first day of 355b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the given year, otherwise, compute the day before the first day of 356b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the given month 357b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param return the Julian day number of the day before the first 358b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * day of the given month and year 359b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 360b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 361b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, 362b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UBool useMonth) const; 363b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 364b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 365fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius /** 366fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius * Validate a single field of this calendar. 367fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius * Overrides Calendar::validateField(int) to provide 368fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius * special handling for month validation for Hebrew calendar. 369fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius * @internal 370fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius */ 371fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius virtual void validateField(UCalendarDateFields field, UErrorCode &status); 372b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 373b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru protected: 374b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 375b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 376b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * (Overrides Calendar) Return true if the current date for this Calendar is in 377b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Daylight Savings Time. Recognizes DST_OFFSET, if it is set. 378b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 379b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Fill-in parameter which receives the status of this operation. 380b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return True if the current date for this Calendar is in Daylight Savings Time, 381b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * false, otherwise. 382b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 383b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 384b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual UBool inDaylightTime(UErrorCode& status) const; 385b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 386b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 387b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns TRUE because the Hebrew Calendar does have a default century 388b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 389b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 390b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual UBool haveDefaultCentury() const; 391b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 392b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 393b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the date of the start of the default century 394b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return start of century - in milliseconds since epoch, 1970 395b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 396b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 397b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual UDate defaultCenturyStart() const; 398b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 399b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 400b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the year in which the default century begins 401b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 402b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 403b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru virtual int32_t defaultCenturyStartYear() const; 404b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 405b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru private: // Calendar-specific implementation 406b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 407b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Finds the day # of the first day in the given Hebrew year. 408b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * To do this, we want to calculate the time of the Tishri 1 new moon 409b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * in that year. 410b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <p> 411b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The algorithm here is similar to ones described in a number of 412b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * references, including: 413b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <ul> 414b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>"Calendrical Calculations", by Nachum Dershowitz & Edward Reingold, 415b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Cambridge University Press, 1997, pages 85-91. 416b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 417b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>Hebrew Calendar Science and Myths, 418b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://www.geocities.com/Athens/1584/"> 419b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * http://www.geocities.com/Athens/1584/</a> 420b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 421b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <li>The Calendar FAQ, 422b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://www.faqs.org/faqs/calendars/faq/"> 423b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * http://www.faqs.org/faqs/calendars/faq/</a> 424b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * </ul> 425b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param year extended year 426b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return day number (JD) 427b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 428b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 429b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru static int32_t startOfYear(int32_t year, UErrorCode& status); 430b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 431b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru static int32_t absoluteDayToDayOfWeek(int32_t day) ; 432b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 433b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 434b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 435b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 436b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t yearType(int32_t year) const; 437b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 438b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 439b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 440b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 441b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru static int32_t monthsInYear(int32_t year) ; 442b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru}; 443b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 444b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_END 445b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 446b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_FORMATTING */ 447b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 448b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 449b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru//eof 450b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 451