1 /* 2 ***************************************************************************** 3 * Copyright (C) 2013, International Business Machines Corporation 4 * and others. All Rights Reserved. 5 ***************************************************************************** 6 * 7 * File DANGICAL.H 8 ***************************************************************************** 9 */ 10 11 #ifndef DANGICAL_H 12 #define DANGICAL_H 13 14 #include "unicode/utypes.h" 15 16 #if !UCONFIG_NO_FORMATTING 17 18 #include "unicode/calendar.h" 19 #include "unicode/timezone.h" 20 #include "chnsecal.h" 21 22 U_NAMESPACE_BEGIN 23 24 /** 25 * <p><code>DangiCalendar</code> is a concrete subclass of {@link Calendar} 26 * that implements a traditional Korean lunisolar calendar.</p> 27 * 28 * <p>DangiCalendar usually should be instantiated using 29 * {@link com.ibm.icu.util.Calendar#getInstance(ULocale)} passing in a <code>ULocale</code> 30 * with the tag <code>"@calendar=dangi"</code>.</p> 31 * 32 * @internal 33 */ 34 class DangiCalendar : public ChineseCalendar { 35 public: 36 //------------------------------------------------------------------------- 37 // Constructors... 38 //------------------------------------------------------------------------- 39 40 /** 41 * Constructs a DangiCalendar based on the current time in the default time zone 42 * with the given locale. 43 * 44 * @param aLocale The given locale. 45 * @param success Indicates the status of DangiCalendar object construction. 46 * Returns U_ZERO_ERROR if constructed successfully. 47 * @internal 48 */ 49 DangiCalendar(const Locale& aLocale, UErrorCode &success); 50 51 /** 52 * Copy Constructor 53 * @internal 54 */ 55 DangiCalendar(const DangiCalendar& other); 56 57 /** 58 * Destructor. 59 * @internal 60 */ 61 virtual ~DangiCalendar(); 62 63 /** 64 * Clone. 65 * @internal 66 */ 67 virtual Calendar* clone() const; 68 69 //---------------------------------------------------------------------- 70 // Internal methods & astronomical calculations 71 //---------------------------------------------------------------------- 72 73 private: 74 75 const TimeZone* getDangiCalZoneAstroCalc(void) const; 76 77 // UObject stuff 78 public: 79 /** 80 * @return The class ID for this object. All objects of a given class have the 81 * same class ID. Objects of other classes have different class IDs. 82 * @internal 83 */ 84 virtual UClassID getDynamicClassID(void) const; 85 86 /** 87 * Return the class ID for this class. This is useful only for comparing to a return 88 * value from getDynamicClassID(). For example: 89 * 90 * Base* polymorphic_pointer = createPolymorphicObject(); 91 * if (polymorphic_pointer->getDynamicClassID() == 92 * Derived::getStaticClassID()) ... 93 * 94 * @return The class ID for all objects of this class. 95 * @internal 96 */ 97 U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); 98 99 /** 100 * return the calendar type, "dangi". 101 * 102 * @return calendar type 103 * @internal 104 */ 105 const char * getType() const; 106 107 108 private: 109 110 DangiCalendar(); // default constructor not implemented 111 }; 112 113 U_NAMESPACE_END 114 115 #endif 116 #endif 117 118 119 120