16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 2003 - 2013, International Business Machines Corporation and * 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* others. All Rights Reserved. * 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org******************************************************************************* 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/ 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef ETHPCCAL_H 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define ETHPCCAL_H 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/calendar.h" 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "cecal.h" 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Implement the Ethiopic calendar system. 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass EthiopicCalendar : public CECalendar { 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Calendar type - use Amete Alem era for all the time or not 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum EEraType { 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org AMETE_MIHRET_ERA, 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org AMETE_ALEM_ERA 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Useful constants for EthiopicCalendar. 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum EMonths { 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for መስከረም, the 1st month of the Ethiopic year. 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org MESKEREM, 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ጥቅምት, the 2nd month of the Ethiopic year. 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org TEKEMT, 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ኅዳር, the 3rd month of the Ethiopic year. 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org HEDAR, 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ታኅሣሥ, the 4th month of the Ethiopic year. 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org TAHSAS, 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ጥር, the 5th month of the Ethiopic year. 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org TER, 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for የካቲት, the 6th month of the Ethiopic year. 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org YEKATIT, 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for መጋቢት, the 7th month of the Ethiopic year. 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org MEGABIT, 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ሚያዝያ, the 8th month of the Ethiopic year. 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org MIAZIA, 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ግንቦት, the 9th month of the Ethiopic year. 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org GENBOT, 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ሰኔ, the 10th month of the Ethiopic year. 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org SENE, 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ሐምሌ, the 11th month of the Ethiopic year. 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org HAMLE, 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ነሐሴ, the 12th month of the Ethiopic year. 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org NEHASSA, 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constant for ጳጉሜን, the 13th month of the Ethiopic year. 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org PAGUMEN 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org enum EEras { 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org AMETE_ALEM, // Before the epoch 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org AMETE_MIHRET // After the epoch 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org }; 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constructs a EthiopicCalendar based on the current time in the default time zone 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with the given locale. 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param aLocale The given locale. 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param success Indicates the status of EthiopicCalendar object construction. 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns U_ZERO_ERROR if constructed successfully. 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param type Whether this Ethiopic calendar use Amete Mihrret (default) or 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * only use Amete Alem for all the time. 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org EthiopicCalendar(const Locale& aLocale, UErrorCode& success, EEraType type = AMETE_MIHRET_ERA); 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy Constructor 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org EthiopicCalendar(const EthiopicCalendar& other); 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Destructor. 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual ~EthiopicCalendar(); 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create and return a polymorphic copy of this calendar. 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return return a polymorphic copy of this calendar. 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual Calendar* clone() const; 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * return the calendar type, "ethiopic" 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return calendar type 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual const char * getType() const; 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Set Alem or Mihret era. 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param onOff Set Amete Alem era if true, otherwise set Amete Mihret era. 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setAmeteAlemEra (UBool onOff); 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return true if this calendar is set to the Amete Alem era. 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return true if set to the Amete Alem era. 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool isAmeteAlemEra() const; 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprotected: 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org //------------------------------------------------------------------------- 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Calendar framework 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org //------------------------------------------------------------------------- 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the extended year defined by the current fields. 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual int32_t handleGetExtendedYear(); 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Compute fields from the JD 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Calculate the limit for a specified type of limit and field 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the date of the start of the default century 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return start of century - in milliseconds since epoch, 1970 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UDate defaultCenturyStart() const; 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the year in which the default century begins 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual int32_t defaultCenturyStartYear() const; 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the date offset from Julian 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual int32_t getJDEpochOffset() const; 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * When eraType is AMETE_ALEM_ERA, then this calendar use only AMETE_ALEM 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * for the era. Otherwise (default), this calendar uses both AMETE_ALEM 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * and AMETE_MIHRET. 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * EXTENDED_YEAR AMETE_ALEM_ERA AMETE_MIHRET_ERA 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 0 Amete Alem 5500 Amete Alem 5500 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 1 Amete Mihret 1 Amete Alem 5501 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org EEraType eraType; 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Override Calendar Returns a unique class ID POLYMORPHICALLY. Pure virtual 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * override. This method is to implement a simple version of RTTI, since not all C++ 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * compilers support genuine RTTI. Polymorphic operator==() and clone() methods call 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * this method. 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The class ID for this object. All objects of a given class have the 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * same class ID. Objects of other classes have different class IDs. 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UClassID getDynamicClassID(void) const; 2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the class ID for this class. This is useful only for comparing to a return 2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * value from getDynamicClassID(). For example: 2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Base* polymorphic_pointer = createPolymorphicObject(); 2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * if (polymorphic_pointer->getDynamicClassID() == 2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Derived::getStaticClassID()) ... 2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return The class ID for all objects of this class. 2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); 2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if 0 2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// We do not want to introduce this API in ICU4C. 2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org// It was accidentally introduced in ICU4J as a public API. 2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org //------------------------------------------------------------------------- 2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Calendar system Conversion methods... 2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org //------------------------------------------------------------------------- 2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Convert an Ethiopic year, month, and day to a Julian day. 2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param year the extended year 2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param month the month 2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param day the day 2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return Julian day 2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @internal 2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t ethiopicToJD(int32_t year, int32_t month, int32_t day); 2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif 2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END 2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */ 2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* ETHPCCAL_H */ 2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//eof 271