OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ******************************************************************************* |
| 3 * Copyright (C) 2003 - 2008, International Business Machines Corporation and * |
| 4 * others. All Rights Reserved. * |
| 5 ******************************************************************************* |
| 6 */ |
| 7 |
| 8 #ifndef CECAL_H |
| 9 #define CECAL_H |
| 10 |
| 11 #include "unicode/utypes.h" |
| 12 |
| 13 #if !UCONFIG_NO_FORMATTING |
| 14 |
| 15 #include "unicode/calendar.h" |
| 16 |
| 17 U_NAMESPACE_BEGIN |
| 18 |
| 19 /** |
| 20 * Base class for EthiopicCalendar and CopticCalendar. |
| 21 * @internal |
| 22 */ |
| 23 class U_I18N_API CECalendar : public Calendar { |
| 24 |
| 25 protected: |
| 26 //------------------------------------------------------------------------- |
| 27 // Constructors... |
| 28 //------------------------------------------------------------------------- |
| 29 |
| 30 /** |
| 31 * Constructs a CECalendar based on the current time in the default time zon
e |
| 32 * with the given locale with the Julian epoch offiset |
| 33 * |
| 34 * @param aLocale The given locale. |
| 35 * @param success Indicates the status of CECalendar object construction. |
| 36 * Returns U_ZERO_ERROR if constructed successfully. |
| 37 * @internal |
| 38 */ |
| 39 CECalendar(const Locale& aLocale, UErrorCode& success); |
| 40 |
| 41 /** |
| 42 * Copy Constructor |
| 43 * @internal |
| 44 */ |
| 45 CECalendar (const CECalendar& other); |
| 46 |
| 47 /** |
| 48 * Destructor. |
| 49 * @internal |
| 50 */ |
| 51 virtual ~CECalendar(); |
| 52 |
| 53 /** |
| 54 * Default assignment operator |
| 55 * @param right Calendar object to be copied |
| 56 * @internal |
| 57 */ |
| 58 CECalendar& operator=(const CECalendar& right); |
| 59 |
| 60 protected: |
| 61 //------------------------------------------------------------------------- |
| 62 // Calendar framework |
| 63 //------------------------------------------------------------------------- |
| 64 |
| 65 /** |
| 66 * Return JD of start of given month/extended year |
| 67 * @internal |
| 68 */ |
| 69 virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool
useMonth) const; |
| 70 |
| 71 /** |
| 72 * Calculate the limit for a specified type of limit and field |
| 73 * @internal |
| 74 */ |
| 75 virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitTy
pe) const; |
| 76 |
| 77 /** |
| 78 * (Overrides Calendar) Return true if the current date for this Calendar is
in |
| 79 * Daylight Savings Time. Recognizes DST_OFFSET, if it is set. |
| 80 * |
| 81 * @param status Fill-in parameter which receives the status of this operati
on. |
| 82 * @return True if the current date for this Calendar is in Daylight Savin
gs Time, |
| 83 * false, otherwise. |
| 84 * @internal |
| 85 */ |
| 86 virtual UBool inDaylightTime(UErrorCode&) const; |
| 87 |
| 88 /** |
| 89 * Returns TRUE because Coptic/Ethiopic Calendar does have a default century |
| 90 * @internal |
| 91 */ |
| 92 virtual UBool haveDefaultCentury() const; |
| 93 |
| 94 protected: |
| 95 /** |
| 96 * The Coptic and Ethiopic calendars differ only in their epochs. |
| 97 * This method must be implemented by CECalendar subclasses to |
| 98 * return the date offset from Julian |
| 99 * @internal |
| 100 */ |
| 101 virtual int32_t getJDEpochOffset() const = 0; |
| 102 |
| 103 /** |
| 104 * Convert an Coptic/Ethiopic year, month, and day to a Julian day. |
| 105 * |
| 106 * @param year the extended year |
| 107 * @param month the month |
| 108 * @param day the day |
| 109 * @param jdEpochOffset the epoch offset from Julian epoch |
| 110 * @return Julian day |
| 111 * @internal |
| 112 */ |
| 113 static int32_t ceToJD(int32_t year, int32_t month, int32_t date, |
| 114 int32_t jdEpochOffset); |
| 115 |
| 116 /** |
| 117 * Convert a Julian day to an Coptic/Ethiopic year, month and day |
| 118 * |
| 119 * @param julianDay the Julian day |
| 120 * @param jdEpochOffset the epoch offset from Julian epoch |
| 121 * @param year receives the extended year |
| 122 * @param month receives the month |
| 123 * @param date receives the day |
| 124 * @internal |
| 125 */ |
| 126 static void jdToCE(int32_t julianDay, int32_t jdEpochOffset, |
| 127 int32_t& year, int32_t& month, int32_t& day); |
| 128 }; |
| 129 |
| 130 U_NAMESPACE_END |
| 131 |
| 132 #endif /* #if !UCONFIG_NO_FORMATTING */ |
| 133 #endif |
| 134 //eof |
OLD | NEW |