|
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 |